| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 'use client'import type { RefObject } from 'react'import { createContext, useContext } from 'use-context-selector'import type {  ChatConfig,  ChatItem,  Feedback,} from '../types'import type { ThemeBuilder } from './theme/theme-context'import type {  AppConversationData,  AppData,  AppMeta,  ConversationItem,} from '@/models/share'export type EmbeddedChatbotContextValue = {  appInfoError?: any  appInfoLoading?: boolean  appMeta?: AppMeta  appData?: AppData  appParams?: ChatConfig  appChatListDataLoading?: boolean  currentConversationId: string  currentConversationItem?: ConversationItem  appPrevChatList: ChatItem[]  pinnedConversationList: AppConversationData['data']  conversationList: AppConversationData['data']  showConfigPanelBeforeChat: boolean  newConversationInputs: Record<string, any>  newConversationInputsRef: RefObject<Record<string, any>>  handleNewConversationInputsChange: (v: Record<string, any>) => void  inputsForms: any[]  handleNewConversation: () => void  handleStartChat: () => void  handleChangeConversation: (conversationId: string) => void  handleNewConversationCompleted: (newConversationId: string) => void  chatShouldReloadKey: string  isMobile: boolean  isInstalledApp: boolean  appId?: string  handleFeedback: (messageId: string, feedback: Feedback) => void  currentChatInstanceRef: RefObject<{ handleStop: () => void }>  themeBuilder?: ThemeBuilder}export const EmbeddedChatbotContext = createContext<EmbeddedChatbotContextValue>({  currentConversationId: '',  appPrevChatList: [],  pinnedConversationList: [],  conversationList: [],  showConfigPanelBeforeChat: false,  newConversationInputs: {},  newConversationInputsRef: { current: {} },  handleNewConversationInputsChange: () => {},  inputsForms: [],  handleNewConversation: () => {},  handleStartChat: () => {},  handleChangeConversation: () => {},  handleNewConversationCompleted: () => {},  chatShouldReloadKey: '',  isMobile: false,  isInstalledApp: false,  handleFeedback: () => {},  currentChatInstanceRef: { current: { handleStop: () => {} } },})export const useEmbeddedChatbotContext = () => useContext(EmbeddedChatbotContext)
 |