{"version":3,"sources":["../src/context/ai-messages-context.tsx"],"sourcesContent":["/**\n * An internal context to separate the messages state (which is constantly changing) from the rest of VN SDK context\n */\n\nimport { Message } from \"@vn-sdk/runtime-client-gql\";\nimport React from \"react\";\nimport { SuggestionItem } from \"../utils/suggestions\";\n\nexport interface AiMessagesContextParams {\n  messages: Message[];\n  setMessages: React.Dispatch<React.SetStateAction<Message[]>>; // suggestions state\n  suggestions: SuggestionItem[];\n  setSuggestions: React.Dispatch<React.SetStateAction<SuggestionItem[]>>;\n}\n\nconst emptyAiContext: AiMessagesContextParams = {\n  messages: [],\n  setMessages: () => [],\n  // suggestions state\n  suggestions: [],\n  setSuggestions: () => [],\n};\n\nexport const AiMessagesContext =\n  React.createContext<AiMessagesContextParams>(emptyAiContext);\n\nexport function useAiMessagesContext(): AiMessagesContextParams {\n  const context = React.useContext(AiMessagesContext);\n  if (context === emptyAiContext) {\n    throw new Error(\n      \"A messages consuming component was not wrapped with `<AiMessages> {...} </AiMessages>`\",\n    );\n  }\n  return context;\n}\n"],"mappings":";AAKA,OAAO,WAAW;AAUlB,IAAM,iBAA0C;AAAA,EAC9C,UAAU,CAAC;AAAA,EACX,aAAa,MAAM,CAAC;AAAA;AAAA,EAEpB,aAAa,CAAC;AAAA,EACd,gBAAgB,MAAM,CAAC;AACzB;AAEO,IAAM,oBACX,MAAM,cAAuC,cAAc;AAEtD,SAAS,uBAAgD;AAC9D,QAAM,UAAU,MAAM,WAAW,iBAAiB;AAClD,MAAI,YAAY,gBAAgB;AAC9B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}