From 9d4e82385a5c1a598ed85e01095e64584b196ce0 Mon Sep 17 00:00:00 2001 From: Min Ji Choi Date: Mon, 8 Jun 2026 20:49:10 -0700 Subject: [PATCH] DBC22-5851: Tabs now retaining open state after approval of queued events --- src/frontend/app/events/home.jsx | 3 ++- src/frontend/app/shared/Tabs.jsx | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/frontend/app/events/home.jsx b/src/frontend/app/events/home.jsx index 8abc63a6..48d94801 100644 --- a/src/frontend/app/events/home.jsx +++ b/src/frontend/app/events/home.jsx @@ -52,6 +52,7 @@ export default function Home() { // States const [ map, setMap ] = useState(null); const [ preview, setPreview ] = useState(true); + const [ eventsListTab, setEventsListTab ] = useState('active'); const [ event, dispatch ] = useReducer(reducer, getInitialEvent()); // Selectors @@ -140,7 +141,7 @@ export default function Home() { setAlertContext={setAlertContext} /> : <>

Events

- + diff --git a/src/frontend/app/shared/Tabs.jsx b/src/frontend/app/shared/Tabs.jsx index 68a1514c..2f7f396b 100644 --- a/src/frontend/app/shared/Tabs.jsx +++ b/src/frontend/app/shared/Tabs.jsx @@ -16,8 +16,9 @@ const getDefault = (children) => { export const TabContext = createContext(''); -export default function Tabs({ children, onChange, hideSingleTabHandle }) { - const [currentTab, setCurrentTab] = useState(getDefault(children)); +export default function Tabs({ children, value, onChange, hideSingleTabHandle }) { + const [internalTab, setInternalTab] = useState(() => getDefault(children)); + const currentTab = value ?? internalTab; let tabs = Array.isArray(children) ? children : [children]; tabs = tabs.filter((child) => child); @@ -40,7 +41,7 @@ export default function Tabs({ children, onChange, hideSingleTabHandle }) { onClick={(e) => { e.stopPropagation(); if (currentTab !== name) { - setCurrentTab(name); + setInternalTab(name); onChange?.(name); } }}