|
@@ -21,10 +21,7 @@ import { useEditorAssistant } from '../../../services/editor-assistant';
|
|
|
import { useKnowledgeAssistant, useFetchAndSetMessageDataEffect } from '../../../services/knowledge-assistant';
|
|
import { useKnowledgeAssistant, useFetchAndSetMessageDataEffect } from '../../../services/knowledge-assistant';
|
|
|
import { useAiAssistantSidebar } from '../../../stores/ai-assistant';
|
|
import { useAiAssistantSidebar } from '../../../stores/ai-assistant';
|
|
|
|
|
|
|
|
-import { AiAssistantChatInitialView } from './AiAssistantChatInitialView';
|
|
|
|
|
-import { AiAssistantDropdown } from './AiAssistantDropdown';
|
|
|
|
|
import { MessageCard } from './MessageCard';
|
|
import { MessageCard } from './MessageCard';
|
|
|
-import { QuickMenuList } from './QuickMenuList';
|
|
|
|
|
import { ResizableTextarea } from './ResizableTextArea';
|
|
import { ResizableTextarea } from './ResizableTextArea';
|
|
|
|
|
|
|
|
import styles from './AiAssistantSidebar.module.scss';
|
|
import styles from './AiAssistantSidebar.module.scss';
|
|
@@ -69,18 +66,24 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
|
|
|
createThread: createThreadForKnowledgeAssistant,
|
|
createThread: createThreadForKnowledgeAssistant,
|
|
|
postMessage: postMessageForKnowledgeAssistant,
|
|
postMessage: postMessageForKnowledgeAssistant,
|
|
|
processMessage: processMessageForKnowledgeAssistant,
|
|
processMessage: processMessageForKnowledgeAssistant,
|
|
|
|
|
+
|
|
|
|
|
+ // Views
|
|
|
|
|
+ initialView: initialViewForKnowledgeAssistant,
|
|
|
headerIcon: headerIconForKnowledgeAssistant,
|
|
headerIcon: headerIconForKnowledgeAssistant,
|
|
|
headerText: headerTextForKnowledgeAssistant,
|
|
headerText: headerTextForKnowledgeAssistant,
|
|
|
placeHolder: placeHolderForKnowledgeAssistant,
|
|
placeHolder: placeHolderForKnowledgeAssistant,
|
|
|
} = useKnowledgeAssistant();
|
|
} = useKnowledgeAssistant();
|
|
|
|
|
|
|
|
const {
|
|
const {
|
|
|
|
|
+ initialView: initialViewForEditorAssistant,
|
|
|
createThread: createThreadForEditorAssistant,
|
|
createThread: createThreadForEditorAssistant,
|
|
|
postMessage: postMessageForEditorAssistant,
|
|
postMessage: postMessageForEditorAssistant,
|
|
|
processMessage: processMessageForEditorAssistant,
|
|
processMessage: processMessageForEditorAssistant,
|
|
|
isActionButtonShown,
|
|
isActionButtonShown,
|
|
|
accept,
|
|
accept,
|
|
|
reject,
|
|
reject,
|
|
|
|
|
+
|
|
|
|
|
+ // Views
|
|
|
headerIcon: headerIconForEditorAssistant,
|
|
headerIcon: headerIconForEditorAssistant,
|
|
|
headerText: headerTextForEditorAssistant,
|
|
headerText: headerTextForEditorAssistant,
|
|
|
placeHolder: placeHolderForEditorAssistant,
|
|
placeHolder: placeHolderForEditorAssistant,
|
|
@@ -106,6 +109,12 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
|
|
|
return thread;
|
|
return thread;
|
|
|
}, [aiAssistantData, createThreadForEditorAssistant, createThreadForKnowledgeAssistant, isEditorAssistant, selectedAiAssistant?._id]);
|
|
}, [aiAssistantData, createThreadForEditorAssistant, createThreadForKnowledgeAssistant, isEditorAssistant, selectedAiAssistant?._id]);
|
|
|
|
|
|
|
|
|
|
+ const initialView = useMemo(() => {
|
|
|
|
|
+ return isEditorAssistant
|
|
|
|
|
+ ? initialViewForEditorAssistant
|
|
|
|
|
+ : initialViewForKnowledgeAssistant;
|
|
|
|
|
+ }, [initialViewForEditorAssistant, initialViewForKnowledgeAssistant, isEditorAssistant]);
|
|
|
|
|
+
|
|
|
const headerIcon = useMemo(() => {
|
|
const headerIcon = useMemo(() => {
|
|
|
return isEditorAssistant
|
|
return isEditorAssistant
|
|
|
? headerIconForEditorAssistant
|
|
? headerIconForEditorAssistant
|
|
@@ -290,10 +299,6 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const clickQuickMenuHandler = useCallback(async(quickMenu: string) => {
|
|
|
|
|
- await submit({ input: quickMenu });
|
|
|
|
|
- }, [submit]);
|
|
|
|
|
-
|
|
|
|
|
const clickAcceptHandler = useCallback(() => {
|
|
const clickAcceptHandler = useCallback(() => {
|
|
|
accept();
|
|
accept();
|
|
|
}, [accept]);
|
|
}, [accept]);
|
|
@@ -302,10 +307,6 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
|
|
|
reject();
|
|
reject();
|
|
|
}, [reject]);
|
|
}, [reject]);
|
|
|
|
|
|
|
|
- const selectAiAssistantHandler = useCallback((aiAssistant?: AiAssistantHasId) => {
|
|
|
|
|
- setSelectedAiAssistant(aiAssistant);
|
|
|
|
|
- }, []);
|
|
|
|
|
-
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
<div className="d-flex flex-column vh-100">
|
|
<div className="d-flex flex-column vh-100">
|
|
@@ -351,28 +352,7 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
|
|
|
</div>
|
|
</div>
|
|
|
)
|
|
)
|
|
|
: (
|
|
: (
|
|
|
- <>{isEditorAssistant
|
|
|
|
|
- ? (
|
|
|
|
|
- <>
|
|
|
|
|
- <div className="py-2">
|
|
|
|
|
- <AiAssistantDropdown
|
|
|
|
|
- selectedAiAssistant={selectedAiAssistant}
|
|
|
|
|
- onSelect={selectAiAssistantHandler}
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- <QuickMenuList
|
|
|
|
|
- onClick={clickQuickMenuHandler}
|
|
|
|
|
- />
|
|
|
|
|
- </>
|
|
|
|
|
- )
|
|
|
|
|
- : (
|
|
|
|
|
- <AiAssistantChatInitialView
|
|
|
|
|
- description={aiAssistantData?.description ?? ''}
|
|
|
|
|
- additionalInstruction={aiAssistantData?.additionalInstruction ?? ''}
|
|
|
|
|
- pagePathPatterns={aiAssistantData?.pagePathPatterns ?? []}
|
|
|
|
|
- />
|
|
|
|
|
- )}
|
|
|
|
|
- </>
|
|
|
|
|
|
|
+ <>{ initialView }</>
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|