Explorar el Código

Use refactored hooks

Shun Miyazawa hace 1 año
padre
commit
532eda67c6

+ 16 - 8
apps/app/src/features/openai/client/components/AiAssistant/Sidebar/AiAssistantTree.tsx

@@ -22,17 +22,19 @@ const moduleClass = styles['ai-assistant-tree-item'] ?? '';
 */
 type ThreadItemProps = {
   thread: IThreadRelationHasId
+  aiAssistantData: AiAssistantHasId;
+  onThreadClick?: (aiAssistantData: AiAssistantHasId, threadId?: string) => void;
 };
 
-const ThreadItem: React.FC<ThreadItemProps> = ({ thread }) => {
+const ThreadItem: React.FC<ThreadItemProps> = ({ thread, aiAssistantData, onThreadClick }) => {
 
   const deleteThreadHandler = useCallback(() => {
     // TODO: https://redmine.weseek.co.jp/issues/161490
   }, []);
 
   const openChatHandler = useCallback(() => {
-    // TODO: https://redmine.weseek.co.jp/issues/159530
-  }, []);
+    onThreadClick?.(aiAssistantData, thread.threadId);
+  }, [aiAssistantData, onThreadClick, thread.threadId]);
 
   return (
     <li
@@ -66,11 +68,12 @@ const ThreadItem: React.FC<ThreadItemProps> = ({ thread }) => {
 *  ThreadItems
 */
 type ThreadItemsProps = {
-  aiAssistantId: string;
+  aiAssistantData: AiAssistantHasId;
+  onThreadClick?: (aiAssistantData: AiAssistantHasId, threadId?: string) => void;
 };
 
-const ThreadItems: React.FC<ThreadItemsProps> = ({ aiAssistantId }) => {
-  const { data: threads } = useSWRxThreads(aiAssistantId);
+const ThreadItems: React.FC<ThreadItemsProps> = ({ aiAssistantData, onThreadClick }) => {
+  const { data: threads } = useSWRxThreads(aiAssistantData._id);
 
   if (threads == null || threads.length === 0) {
     return <p className="text-secondary ms-5">スレッドが存在しません</p>;
@@ -82,6 +85,8 @@ const ThreadItems: React.FC<ThreadItemsProps> = ({ aiAssistantId }) => {
         <ThreadItem
           key={thread._id}
           thread={thread}
+          aiAssistantData={aiAssistantData}
+          onThreadClick={onThreadClick}
         />
       ))}
     </div>
@@ -108,7 +113,7 @@ type AiAssistantItemProps = {
   currentUserId?: string;
   aiAssistant: AiAssistantHasId;
   onEditClicked?: (aiAssistantData: AiAssistantHasId) => void;
-  onItemClicked?: (aiAssistantData: AiAssistantHasId) => void;
+  onItemClicked?: (aiAssistantData: AiAssistantHasId, threadId?: string) => void;
   onDeleted?: () => void;
 };
 
@@ -207,7 +212,10 @@ const AiAssistantItem: React.FC<AiAssistantItemProps> = ({
       </li>
 
       { isThreadsOpened && (
-        <ThreadItems aiAssistantId={aiAssistant._id} />
+        <ThreadItems
+          aiAssistantData={aiAssistant}
+          onThreadClick={onItemClicked}
+        />
       ) }
     </>
   );