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

refactor: unify page selection handler for keyword search and page tree selection

Shun Miyazawa 8 месяцев назад
Родитель
Сommit
ae7a9d743a

+ 6 - 4
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantManagementModal/AiAssistantManagementModal.tsx

@@ -119,9 +119,9 @@ const AiAssistantManagementModalSubstance = (): JSX.Element => {
 
 
 
 
   /*
   /*
-  *  For AiAssistantManagementKeywordSearch methods
+  *  For AiAssistantManagementKeywordSearch & AiAssistantManagementPageTreeSelection methods
   */
   */
-  const selectPageHandlerByKeywordSearch = useCallback((pages: IPageHasId[]) => {
+  const selectPageHandlerForKeywordSearchOrPageTreeSelection = useCallback((pages: IPageHasId[]) => {
     if (pages.length === 0) {
     if (pages.length === 0) {
       return;
       return;
     }
     }
@@ -273,12 +273,14 @@ const AiAssistantManagementModalSubstance = (): JSX.Element => {
 
 
         <TabPane tabId={AiAssistantManagementModalPageMode.KEYWORD_SEARCH}>
         <TabPane tabId={AiAssistantManagementModalPageMode.KEYWORD_SEARCH}>
           <AiAssistantKeywordSearch
           <AiAssistantKeywordSearch
-            updateBaseSelectedPages={selectPageHandlerByKeywordSearch}
+            updateBaseSelectedPages={selectPageHandlerForKeywordSearchOrPageTreeSelection}
           />
           />
         </TabPane>
         </TabPane>
 
 
         <TabPane tabId={AiAssistantManagementModalPageMode.PAGE_TREE_SELECTION}>
         <TabPane tabId={AiAssistantManagementModalPageMode.PAGE_TREE_SELECTION}>
-          <AiAssistantManagementPageTreeSelection />
+          <AiAssistantManagementPageTreeSelection
+            updateBaseSelectedPages={selectPageHandlerForKeywordSearchOrPageTreeSelection}
+          />
         </TabPane>
         </TabPane>
 
 
         <TabPane tabId={AiAssistantManagementModalPageMode.HOME}>
         <TabPane tabId={AiAssistantManagementModalPageMode.HOME}>

+ 11 - 3
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantManagementModal/AiAssistantManagementPageTreeSelection.tsx

@@ -89,13 +89,20 @@ const SelectablePageTree = memo((props: { onClickAddPageButton: (page: IPageHasI
 });
 });
 
 
 
 
-export const AiAssistantManagementPageTreeSelection = (): JSX.Element => {
+export const AiAssistantManagementPageTreeSelection = (props: { updateBaseSelectedPages: (pages: IPageHasId[]) => void}): JSX.Element => {
+  const { updateBaseSelectedPages } = props;
+
   const { t } = useTranslation();
   const { t } = useTranslation();
-  const { data: aiAssistantManagementModalData } = useAiAssistantManagementModal();
+  const { data: aiAssistantManagementModalData, changePageMode } = useAiAssistantManagementModal();
   const isNewAiAssistant = aiAssistantManagementModalData?.aiAssistantData == null;
   const isNewAiAssistant = aiAssistantManagementModalData?.aiAssistantData == null;
 
 
   const { selectedPages, addPageHandler, removePageHandler } = useSelectedPages();
   const { selectedPages, addPageHandler, removePageHandler } = useSelectedPages();
 
 
+  const nextButtonClickHandler = useCallback(() => {
+    updateBaseSelectedPages(Array.from(selectedPages.values()));
+    changePageMode(AiAssistantManagementModalPageMode.HOME);
+  }, [changePageMode, selectedPages, updateBaseSelectedPages]);
+
   return (
   return (
     <div className={moduleClass}>
     <div className={moduleClass}>
       <AiAssistantManagementHeader
       <AiAssistantManagementHeader
@@ -133,9 +140,10 @@ export const AiAssistantManagementPageTreeSelection = (): JSX.Element => {
 
 
         <div className="d-flex justify-content-center mt-4">
         <div className="d-flex justify-content-center mt-4">
           <button
           <button
-            disabled={selectedPages.size === 0}
             type="button"
             type="button"
             className="btn btn-primary rounded next-button"
             className="btn btn-primary rounded next-button"
+            disabled={selectedPages.size === 0}
+            onClick={nextButtonClickHandler}
           >
           >
             {t('modal_ai_assistant.next')}
             {t('modal_ai_assistant.next')}
           </button>
           </button>