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

refactor: replace selectedPages Map with selectedPagesArray for consistency in AiAssistant components

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

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

@@ -45,7 +45,7 @@ export const AiAssistantKeywordSearch = (props: Props): JSX.Element => {
 
   const [selectedSearchKeywords, setSelectedSearchKeywords] = useState<Array<SelectedSearchKeyword>>([]);
   const {
-    selectedPages, addPage, removePage,
+    selectedPages, selectedPagesArray, addPage, removePage,
   } = useSelectedPages(baseSelectedPages);
 
   const joinedSelectedSearchKeywords = useMemo(() => {
@@ -177,7 +177,7 @@ export const AiAssistantKeywordSearch = (props: Props): JSX.Element => {
                 pages={pagesWithGlobPath ?? []}
                 method="add"
                 onClickMethodButton={addPage}
-                disablePagePaths={Array.from(selectedPages.values()).map(page => page.path)}
+                disablePagePaths={selectedPagesArray.map(page => page.path)}
               />
             </div>
           </>
@@ -189,7 +189,7 @@ export const AiAssistantKeywordSearch = (props: Props): JSX.Element => {
 
         <div className="px-4">
           <SelectablePagePageList
-            pages={Array.from(selectedPages.values())}
+            pages={selectedPagesArray}
             method="remove"
             onClickMethodButton={removePage}
           />

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

@@ -1,5 +1,5 @@
 import React, {
-  Suspense, useCallback, memo, useMemo,
+  Suspense, useCallback, memo,
 } from 'react';
 
 import { useTranslation } from 'react-i18next';
@@ -62,7 +62,7 @@ const SelectablePageTree = memo((props: { onClickAddPageButton: (page: Selectabl
       <TreeItemLayout
         {...props}
         itemClass={PageTreeItem}
-        className=" text-muted"
+        className="text-muted"
         customHoveredEndComponents={[SelectPageButton]}
       />
     );
@@ -93,7 +93,7 @@ export const AiAssistantManagementPageTreeSelection = (props: Props): JSX.Elemen
   const isNewAiAssistant = aiAssistantManagementModalData?.aiAssistantData == null;
 
   const {
-    selectedPages, addPage, removePage,
+    selectedPages, selectedPagesArray, addPage, removePage,
   } = useSelectedPages(baseSelectedPages);
 
   const addPageButtonClickHandler = useCallback((page: SelectablePage) => {
@@ -140,7 +140,7 @@ export const AiAssistantManagementPageTreeSelection = (props: Props): JSX.Elemen
           <SelectablePagePageList
             method="remove"
             methodButtonPosition="right"
-            pages={Array.from(selectedPages.values())}
+            pages={selectedPagesArray}
             onClickMethodButton={removePage}
           />
           <label className="form-text text-muted mt-2">

+ 10 - 1
apps/app/src/features/openai/client/services/use-selected-pages.tsx

@@ -1,4 +1,6 @@
-import { useState, useCallback, useEffect } from 'react';
+import {
+  useState, useCallback, useEffect, useMemo,
+} from 'react';
 
 import type { SelectablePage } from '../../interfaces/selectable-page';
 import { useAiAssistantManagementModal } from '../stores/ai-assistant';
@@ -6,6 +8,7 @@ import { useAiAssistantManagementModal } from '../stores/ai-assistant';
 
 type UseSelectedPages = {
   selectedPages: Map<string, SelectablePage>,
+  selectedPagesArray: SelectablePage[],
   addPage: (page: SelectablePage) => void,
   removePage: (page: SelectablePage) => void,
 }
@@ -14,6 +17,10 @@ export const useSelectedPages = (initialPages?: SelectablePage[]): UseSelectedPa
   const [selectedPages, setSelectedPages] = useState<Map<string, SelectablePage>>(new Map());
   const { data: aiAssistantManagementModalData } = useAiAssistantManagementModal();
 
+  const selectedPagesArray = useMemo(() => {
+    return Array.from(selectedPages.values());
+  }, [selectedPages]);
+
   useEffect(() => {
     // Initialize each time PageMode is changed
     if (initialPages != null && aiAssistantManagementModalData?.pageMode != null) {
@@ -47,8 +54,10 @@ export const useSelectedPages = (initialPages?: SelectablePage[]): UseSelectedPa
     });
   }, []);
 
+
   return {
     selectedPages,
+    selectedPagesArray,
     addPage,
     removePage,
   };