{"version":3,"file":"ChatBotProvider.mjs","names":["React","useEffect","useState","useUser","ChatBotContext","Message","createdAt","createdBy","name","loading","messageContent","JSX","Element","messageStatus","MessageStatus","outgoing","messageText","Sent","Delivered","Error","ChatBotProvider","t0","$","_c","children","Date","toLocaleString","hour","minute","hour12","t1","Symbol","for","messageHistory","setMessageHistory","user","t2","id","createMessage","messageText_0","newMessage","messageContent_0","createdBy_0","messageText_1","newMessage_0","prevState","addMessage","t3","messageContent_1","createdBy_1","_temp","removeMessageHistory","t4","_temp3","removeLoadingMessage","t5","t6","_temp2","message","prevState_0","filter"],"sources":["../../../src/utilities/chatBot/ChatBotProvider.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useUser } from '../auth/useUser';\nimport { ChatBotContext } from './ChatBotContext';\n\ninterface Message {\n  createdAt: string | undefined;\n  createdBy: { name: string; loading: boolean };\n  messageContent: string | JSX.Element | undefined;\n  messageStatus: MessageStatus | undefined;\n  outgoing: boolean | undefined;\n  messageText: string | undefined;\n}\n\nenum MessageStatus {\n  Sent = 0,\n  Delivered = 1,\n  Error = -1\n}\n\n\nexport const ChatBotProvider = ({ children }) => {\n  const defaultCreatedAt = new Date().toLocaleString([], { hour: '2-digit', minute: '2-digit', hour12: true });\n  const defaultCreatedBy = {loading: false, name: 'AI Assistant' };\n  const messageText = 'Welcome! How can I help you search our Product Documentation?';\n  const welcomeMessage: Message = {\n    createdAt: defaultCreatedAt,\n    createdBy: defaultCreatedBy,\n    messageContent: messageText,\n    messageStatus: MessageStatus.Sent,\n    outgoing: false,\n    messageText\n  };\n\n  const [messageHistory, setMessageHistory] = useState<Message[]>([]);\n  const user = useUser();\n\n  const createMessage = (messageContent: string | JSX.Element, createdBy, messageText) => {\n    const newMessage: Message = {\n      createdAt: new Date().toLocaleString([], { hour: '2-digit', minute: '2-digit', hour12: true }),\n      createdBy,\n      messageContent,\n      messageText,\n      messageStatus: MessageStatus.Sent,\n      outgoing: createdBy.id === user?.id,\n    };\n\n    return newMessage\n  }\n\n  const addMessage = (messageContent: string | JSX.Element, createdBy, messageText) => {\n    const newMessage = createMessage(messageContent, createdBy, messageText)\n    setMessageHistory((prevState) => [...prevState, newMessage]);\n  };\n\n  const removeMessageHistory = (messageContent: string | JSX.Element, createdBy) => {\n    setMessageHistory(() => []);\n  };\n\n  const removeLoadingMessage = () => {\n    setMessageHistory((prevState) =>\n      prevState.filter((message) => !message.createdBy.loading)\n    );\n  };\n\n  return (\n    <ChatBotContext.Provider\n      value={{\n        messageHistory,\n        addMessage,\n        removeMessageHistory,\n        removeLoadingMessage,\n      }}\n    >\n      {children}\n    </ChatBotContext.Provider>\n  );\n};\n"],"mappings":";;;;;AAaA,IAAKc,gBAAL,yBAAA,eAAA;AACEG,eAAAA,cAAAA,UAAAA,KAAAA;AACAC,eAAAA,cAAAA,eAAAA,KAAAA;AACAC,eAAAA,cAAAA,WAAAA,MAAAA;;EAHGL,iBAAAA,EAAAA,CAIL;AAGA,MAAaM,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAC,MAAA,EAAAC,aAAAH;AACL,kBAAA,IAAII,MAAM,EAAAC,eAAgB,EAAE,EAAE;EAAAC,MAAQ;EAASC,QAAU;EAASC,QAAU;EAAM,CAAC;CAAA,IAAAC;AAAA,KAAAR,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAY5CF,OAAA,EAAE;AAAAR,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAlE,MAAA,CAAAW,gBAAAC,qBAA4ChC,SAAoB4B,GAAG;CACnE,MAAAK,OAAahC,SAAS;CAAC,IAAAiC;AAAA,KAAAd,EAAA,OAAAa,MAAAE,IAAA;EAEvB,MAAAC,iBAAsB5B,gBAAAH,WAAAgC,kBAAA;AAQlB,UAP0B;IAAAjC,4BACf,IAAImB,MAAM,EAAAC,eAAgB,EAAE,EAAE;KAAAC,MAAQ;KAASC,QAAU;KAASC,QAAU;KAAM,CAAC;IAAAtB;IAAAG;IAAAM,aAG9FA;IAAWH,eACIC,cAAaG;IAAKF,UACvBR,UAAS8B,OAAQF,MAAIE;IAChC;;AAKgBD,QAAAK,kBAAAC,aAAAC,kBAAA;GACjB,MAAAC,eAAmBN,cAAc5B,kBAAgBH,aAAWS,cAAY;AACxEkB,sBAAkBW,cAAe,CAAA,GAAIA,WAAWL,aAAW,CAAC;;AAC7DlB,IAAA,KAAAa,MAAAE;AAAAf,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAHD,MAAAwB,aAAmBV;CAGjB,IAAAW;AAAA,KAAAzB,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAE2Be,QAAAC,kBAAAC,gBAAA;AAC3Bf,qBAAkBgB,MAAS;;AAC5B5B,IAAA,KAAAyB;OAAAA,MAAAzB,EAAA;CAFD,MAAA6B,uBAA6BJ;CAE3B,IAAAK;AAAA,KAAA9B,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAE2BoB,aAAA;AAC3BlB,qBAAkBmB,OAEjB;;AACF/B,IAAA,KAAA8B;OAAAA,MAAA9B,EAAA;CAJD,MAAAgC,uBAA6BF;CAI3B,IAAAG;AAAA,KAAAjC,EAAA,OAAAwB,cAAAxB,EAAA,OAAAW,gBAAA;AAISsB,OAAA;GAAAtB;GAAAa;GAAAK;GAAAG;GAKN;AAAAhC,IAAA,KAAAwB;AAAAxB,IAAA,KAAAW;AAAAX,IAAA,KAAAiC;OAAAA,MAAAjC,EAAA;CAAA,IAAAkC;AAAA,KAAAlC,EAAA,OAAAE,YAAAF,EAAA,OAAAiC,IAAA;AANHC,OAAA,sBAAA,cAAA,eAAA,UAAA,EACS,OAAAD,IAQiB,EADvB/B,SACuB;AAAAF,IAAA,KAAAE;AAAAF,IAAA,KAAAiC;AAAAjC,IAAA,MAAAkC;OAAAA,MAAAlC,EAAA;AAAA,QAT1BkC;;AA7C2B,SAAAN,QAAA;AAAA,QAmCH,EAAE;;AAnCC,SAAAO,OAAAC,SAAA;AAAA,QAwCK,CAACA,QAAOnD,UAAUE;;AAxCvB,SAAA4C,OAAAM,aAAA;AAAA,QAwCzBd,YAASe,OAAQH,OAAwC"}