Procházet zdrojové kódy

refactor: add onCollapsed prop to AiAssistantList and update AiAssistantContent to handle collapsible state

Shun Miyazawa před 10 měsíci
rodič
revize
e46285e3f7

+ 8 - 2
apps/app/src/features/openai/client/components/AiAssistant/Sidebar/AiAssistantList.tsx

@@ -282,10 +282,11 @@ type AiAssistantListProps = {
   aiAssistants: AiAssistantHasId[];
   onUpdated?: () => void;
   onDeleted?: () => void;
+  onCollapsed?: () => void;
 };
 
 export const AiAssistantList: React.FC<AiAssistantListProps> = ({
-  isTeamAssistant, aiAssistants, onUpdated, onDeleted,
+  isTeamAssistant, aiAssistants, onUpdated, onDeleted, onCollapsed,
 }) => {
   const { t } = useTranslation();
   const { data: currentUser } = useCurrentUser();
@@ -294,13 +295,18 @@ export const AiAssistantList: React.FC<AiAssistantListProps> = ({
 
   const [isCollapsed, setIsCollapsed] = useState(false);
 
+  const toggleCollapse = useCallback(() => {
+    setIsCollapsed(prev => !prev);
+    onCollapsed?.();
+  }, [onCollapsed]);
+
   return (
     <div className={`${moduleClass}`}>
       <button
         type="button"
         className="btn btn-link p-0 text-secondary d-flex align-items-center"
         aria-expanded="false"
-        onClick={() => setIsCollapsed(!isCollapsed)}
+        onClick={toggleCollapse}
       >
         <h3 className="fw-bold grw-ai-assistant-substance-header mb-0 me-1">
           {t(isTeamAssistant ? 'ai_assistant_list.team_assistants' : 'ai_assistant_list.my_assistants')}

+ 2 - 0
apps/app/src/features/openai/client/components/AiAssistant/Sidebar/AiAssistantSubstance.tsx

@@ -31,6 +31,7 @@ export const AiAssistantContent = (): JSX.Element => {
           <AiAssistantList
             onUpdated={mutateAiAssistants}
             onDeleted={mutateAiAssistants}
+            onCollapsed={mutateAiAssistants}
             aiAssistants={aiAssistants?.myAiAssistants ?? []}
           />
         </div>
@@ -39,6 +40,7 @@ export const AiAssistantContent = (): JSX.Element => {
           <AiAssistantList
             isTeamAssistant
             onUpdated={mutateAiAssistants}
+            onCollapsed={mutateAiAssistants}
             aiAssistants={aiAssistants?.teamAiAssistants ?? []}
           />
         </div>