Просмотр исходного кода

Implementation of click behavior

Shun Miyazawa 1 год назад
Родитель
Сommit
23e65e981b

+ 10 - 1
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantSidebar/AiAssistantSidebar.tsx

@@ -127,6 +127,11 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
       : 'sidebar_ai_assistant.knowledge_assistant_placeholder');
       : 'sidebar_ai_assistant.knowledge_assistant_placeholder');
   }, [form.formState.isSubmitting, isEditorAssistant, t]);
   }, [form.formState.isSubmitting, isEditorAssistant, t]);
 
 
+  const clickPresetPromptHandler = useCallback((presetPrompt: string) => {
+    console.log('presetPrompt', { presetPrompt });
+    // todo: https://redmine.weseek.co.jp/issues/163264
+  }, []);
+
   const isGenerating = generatingAnswerMessage != null;
   const isGenerating = generatingAnswerMessage != null;
   const submit = useCallback(async(data: FormData) => {
   const submit = useCallback(async(data: FormData) => {
     // do nothing when the assistant is generating an answer
     // do nothing when the assistant is generating an answer
@@ -337,7 +342,11 @@ const AiAssistantSidebarSubstance: React.FC<AiAssistantSidebarSubstanceProps> =
             )
             )
             : (
             : (
               <>{isEditorAssistant
               <>{isEditorAssistant
-                ? <PresetPromptList />
+                ? (
+                  <PresetPromptList
+                    onClick={clickPresetPromptHandler}
+                  />
+                )
                 : (
                 : (
                   <AiAssistantChatInitialView
                   <AiAssistantChatInitialView
                     description={aiAssistantData?.description ?? ''}
                     description={aiAssistantData?.description ?? ''}

+ 9 - 2
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantSidebar/PresetPromptList.tsx

@@ -3,7 +3,7 @@ import { useCallback } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
 type Props = {
 type Props = {
-  //
+  onClick: (presetPrompt: string) => void
 }
 }
 
 
 const presetPrompts = [
 const presetPrompts = [
@@ -11,9 +11,15 @@ const presetPrompts = [
   'correct',
   'correct',
 ];
 ];
 
 
-export const PresetPromptList: React.FC<Props> = () => {
+export const PresetPromptList: React.FC<Props> = ({ onClick }) => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
+
+  const clickPresetPromptHandler = useCallback((presetPrompt: string) => {
+    onClick(t(`sidebar_ai_assistant.preset_prompt.${presetPrompt}.prompt`));
+  }, [onClick, t]);
+
+
   return (
   return (
     <div className="container py-4">
     <div className="container py-4">
       <div className="d-flex flex-column gap-3">
       <div className="d-flex flex-column gap-3">
@@ -21,6 +27,7 @@ export const PresetPromptList: React.FC<Props> = () => {
           <button
           <button
             type="button"
             type="button"
             key={presetPrompt}
             key={presetPrompt}
+            onClick={() => clickPresetPromptHandler(presetPrompt)}
             className="btn text-body-secondary p-3 rounded-3 border border-1"
             className="btn text-body-secondary p-3 rounded-3 border border-1"
           >
           >
             <div className="d-flex align-items-center">
             <div className="d-flex align-items-center">