{"version":3,"sources":["../../src/chat/session.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n\tChatSessionOptions,\n\tChatSession as ChatSessionType,\n} from \"@whop/embedded-components-vanilla-js/types\";\nimport type { PropsWithChildren } from \"react\";\n\nimport React, {\n\tcreateContext,\n\tuseContext,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n} from \"react\";\nimport { useElements } from \"../provider\";\n\ninterface ContextState {\n\tchatSession: ChatSessionType | null;\n}\n\nconst ChatSessionContext = createContext<ContextState | null>(null);\n\nexport function ChatSession({\n\tchildren,\n\ttoken,\n\tref,\n}: PropsWithChildren<\n\tChatSessionOptions & {\n\t\tref?: React.RefObject<{\n\t\t\tchatSession: ChatSessionType | null;\n\t\t} | null>;\n\t}\n>) {\n\tconst elements = useElements();\n\n\tconst chatSession = useMemo(() => {\n\t\tif (!elements) return null;\n\t\treturn elements.createChatSession({ token });\n\t}, [elements]);\n\n\tuseEffect(() => {\n\t\tif (!chatSession) return;\n\t\tchatSession.updateOptions({ token });\n\t}, [chatSession, token]);\n\n\tconst value: ContextState = useMemo(\n\t\t() => ({\n\t\t\tchatSession,\n\t\t}),\n\t\t[chatSession],\n\t);\n\n\tuseImperativeHandle(ref, () => ({ chatSession }), [chatSession]);\n\n\treturn (\n\t\t<ChatSessionContext.Provider value={value}>\n\t\t\t{children}\n\t\t</ChatSessionContext.Provider>\n\t);\n}\n\nexport function useChatSession() {\n\tconst ctx = useContext(ChatSessionContext);\n\tif (!ctx) {\n\t\tthrow new Error(\"useChatSession must be used within a ChatSessionProvider\");\n\t}\n\treturn ctx.chatSession;\n}\n"],"mappings":";;AAQA,OAAO;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB;AAM5B,MAAM,qBAAqB,cAAmC,IAAI;AAE3D,SAAS,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,WAAW,YAAY;AAE7B,QAAM,cAAc,QAAQ,MAAM;AACjC,QAAI,CAAC,SAAU,QAAO;AACtB,WAAO,SAAS,kBAAkB,EAAE,MAAM,CAAC;AAAA,EAC5C,GAAG,CAAC,QAAQ,CAAC;AAEb,YAAU,MAAM;AACf,QAAI,CAAC,YAAa;AAClB,gBAAY,cAAc,EAAE,MAAM,CAAC;AAAA,EACpC,GAAG,CAAC,aAAa,KAAK,CAAC;AAEvB,QAAM,QAAsB;AAAA,IAC3B,OAAO;AAAA,MACN;AAAA,IACD;AAAA,IACA,CAAC,WAAW;AAAA,EACb;AAEA,sBAAoB,KAAK,OAAO,EAAE,YAAY,IAAI,CAAC,WAAW,CAAC;AAE/D,SACC,oCAAC,mBAAmB,UAAnB,EAA4B,SAC3B,QACF;AAEF;AAEO,SAAS,iBAAiB;AAChC,QAAM,MAAM,WAAW,kBAAkB;AACzC,MAAI,CAAC,KAAK;AACT,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AACA,SAAO,IAAI;AACZ;","names":[]}