79 lines
2.3 KiB
TypeScript
79 lines
2.3 KiB
TypeScript
import { GenericPageData } from '../../pageInterface';
|
|
import { LuMessageSquare } from 'react-icons/lu';
|
|
import { IoMdSend } from 'react-icons/io';
|
|
import { MdStop } from 'react-icons/md';
|
|
import { createChatbotHook } from '../../../../hooks/useChatbot';
|
|
|
|
export const chatbotPageData: GenericPageData = {
|
|
id: 'start-chatbot',
|
|
path: 'start/chatbot',
|
|
name: 'Chatbot',
|
|
description: 'Simple chatbot interface for conversations',
|
|
|
|
// Parent page
|
|
parentPath: 'start',
|
|
|
|
// Visual
|
|
icon: LuMessageSquare,
|
|
title: 'Chatbot',
|
|
subtitle: 'Chat with AI assistant',
|
|
|
|
// No header buttons (simpler than dashboard)
|
|
headerButtons: [],
|
|
|
|
// Content sections
|
|
content: [
|
|
{
|
|
id: 'chatbot-history',
|
|
type: 'chatHistory',
|
|
chatHistoryConfig: {
|
|
emptyMessage: 'No chat history yet. Start a conversation to see it here.'
|
|
}
|
|
},
|
|
{
|
|
id: 'chatbot-messages',
|
|
type: 'messages',
|
|
messagesConfig: {
|
|
variant: 'chat',
|
|
showDocuments: true,
|
|
showMetadata: false,
|
|
showProgress: false,
|
|
emptyMessage: 'No messages yet. Start a conversation to see messages here.'
|
|
}
|
|
},
|
|
{
|
|
id: 'chatbot-input',
|
|
type: 'inputForm',
|
|
inputFormConfig: {
|
|
hookFactory: createChatbotHook,
|
|
placeholder: 'Type your message here...',
|
|
buttonLabel: 'Send',
|
|
stopButtonLabel: 'Stop',
|
|
buttonIcon: IoMdSend,
|
|
stopButtonIcon: MdStop,
|
|
buttonVariant: 'primary',
|
|
stopButtonVariant: 'danger',
|
|
buttonSize: 'md',
|
|
textFieldSize: 'md',
|
|
showFileUpload: false
|
|
}
|
|
}
|
|
],
|
|
|
|
// Page behavior
|
|
persistent: true,
|
|
preserveState: true,
|
|
preload: true,
|
|
moduleEnabled: true,
|
|
|
|
|
|
|
|
// Lifecycle hooks
|
|
onActivate: async () => {
|
|
if (import.meta.env.DEV) console.log('Chatbot activated - state preserved');
|
|
},
|
|
onDeactivate: async () => {
|
|
if (import.meta.env.DEV) console.log('Chatbot deactivated - keeping state');
|
|
}
|
|
};
|
|
|