| | |
| | | AppMeta, |
| | | ConversationItem, |
| | | } from '@/models/share' |
| | | import { noop } from 'lodash-es' |
| | | |
| | | export type EmbeddedChatbotContextValue = { |
| | | appInfoError?: any |
| | |
| | | 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: (callback?: any) => void |
| | | handleStartChat: () => void |
| | | handleChangeConversation: (conversationId: string) => void |
| | | handleNewConversationCompleted: (newConversationId: string) => void |
| | | chatShouldReloadKey: string |
| | | isMobile: boolean |
| | | isInstalledApp: boolean |
| | | allowResetChat: boolean |
| | | appId?: string |
| | | handleFeedback: (messageId: string, feedback: Feedback) => void |
| | | currentChatInstanceRef: RefObject<{ handleStop: () => void }> |
| | | themeBuilder?: ThemeBuilder |
| | | clearChatList?: boolean |
| | | setClearChatList: (state: boolean) => void |
| | | isResponding?: boolean |
| | | setIsResponding: (state: boolean) => void, |
| | | currentConversationInputs: Record<string, any> | null, |
| | | setCurrentConversationInputs: (v: Record<string, any>) => void, |
| | | } |
| | | |
| | | export const EmbeddedChatbotContext = createContext<EmbeddedChatbotContextValue>({ |
| | |
| | | appPrevChatList: [], |
| | | pinnedConversationList: [], |
| | | conversationList: [], |
| | | showConfigPanelBeforeChat: false, |
| | | newConversationInputs: {}, |
| | | newConversationInputsRef: { current: {} }, |
| | | handleNewConversationInputsChange: noop, |
| | | handleNewConversationInputsChange: () => {}, |
| | | inputsForms: [], |
| | | handleNewConversation: noop, |
| | | handleStartChat: noop, |
| | | handleChangeConversation: noop, |
| | | handleNewConversationCompleted: noop, |
| | | handleNewConversation: () => {}, |
| | | handleStartChat: () => {}, |
| | | handleChangeConversation: () => {}, |
| | | handleNewConversationCompleted: () => {}, |
| | | chatShouldReloadKey: '', |
| | | isMobile: false, |
| | | isInstalledApp: false, |
| | | allowResetChat: true, |
| | | handleFeedback: noop, |
| | | currentChatInstanceRef: { current: { handleStop: noop } }, |
| | | clearChatList: false, |
| | | setClearChatList: noop, |
| | | isResponding: false, |
| | | setIsResponding: noop, |
| | | currentConversationInputs: {}, |
| | | setCurrentConversationInputs: noop, |
| | | handleFeedback: () => {}, |
| | | currentChatInstanceRef: { current: { handleStop: () => {} } }, |
| | | }) |
| | | export const useEmbeddedChatbotContext = () => useContext(EmbeddedChatbotContext) |