From 5cec34721cb31ba449357ddb3d6ea3a5ccde6e6e Mon Sep 17 00:00:00 2001 From: Creylay Date: Tue, 30 Jun 2026 11:28:40 -0400 Subject: [PATCH] Refactor session state management in SessionBar and streamline layout rendering in GenerativeContent --- .../src/components/generative/SessionBar.jsx | 14 ++++---- .../pages/generative/GenerativeContent.jsx | 32 ++++++++----------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/DashAI/front/src/components/generative/SessionBar.jsx b/DashAI/front/src/components/generative/SessionBar.jsx index b8ad8a2c5..7c089af96 100644 --- a/DashAI/front/src/components/generative/SessionBar.jsx +++ b/DashAI/front/src/components/generative/SessionBar.jsx @@ -47,16 +47,16 @@ export default function SessionBar({ onToggle }) { ), ), ]; - const initialOpenState = {}; - uniqueDisplayNames.forEach((displayName) => { - initialOpenState[displayName] = false; - }); setOpenSections((prev) => { - // Only update if display names have changed const prevKeys = Object.keys(prev).sort().join(","); - const newKeys = Object.keys(initialOpenState).sort().join(","); + const newKeys = uniqueDisplayNames.slice().sort().join(","); if (prevKeys === newKeys) return prev; - return initialOpenState; + // Preserve existing open/close state; initialize new keys as closed + const merged = {}; + uniqueDisplayNames.forEach((displayName) => { + merged[displayName] = displayName in prev ? prev[displayName] : false; + }); + return merged; }); }, [sessions, tasks]); diff --git a/DashAI/front/src/pages/generative/GenerativeContent.jsx b/DashAI/front/src/pages/generative/GenerativeContent.jsx index 29587ec43..7aee51179 100644 --- a/DashAI/front/src/pages/generative/GenerativeContent.jsx +++ b/DashAI/front/src/pages/generative/GenerativeContent.jsx @@ -97,23 +97,19 @@ export default function GenerativeContent() { return ; }; - const layout = ( - - - - - - {renderCenter()} - - {renderRight()} - - - - ); - - return isCreating ? ( - {layout} - ) : ( - layout + return ( + + + + + + + {renderCenter()} + + {renderRight()} + + + + ); }