diff --git a/apps/roam/src/components/settings/Settings.tsx b/apps/roam/src/components/settings/Settings.tsx index d8f66a3f2..e39dea0e9 100644 --- a/apps/roam/src/components/settings/Settings.tsx +++ b/apps/roam/src/components/settings/Settings.tsx @@ -31,6 +31,7 @@ import { LeftSidebarPersonalSections } from "./LeftSidebarPersonalSettings"; import { LeftSidebarGlobalSections } from "./LeftSidebarGlobalSettings"; import posthog from "posthog-js"; import { bulkReadSettings } from "./utils/accessors"; +import { onSettingChange, settingKeys } from "./utils/settingsEmitter"; type SectionHeaderProps = { children: React.ReactNode; @@ -90,6 +91,14 @@ export const SettingsDialog = ({ ); // eslint-disable-next-line react-hooks/exhaustive-deps const settings = useMemo(() => bulkReadSettings(), [activeTabId]); + const [leftSidebarEnabled, setLeftSidebarEnabled] = useState( + settings.featureFlags["Enable left sidebar"], + ); + useEffect(() => { + return onSettingChange(settingKeys.leftSidebarFlag, (newValue) => { + setLeftSidebarEnabled(Boolean(newValue)); + }); + }, []); const [showAdminPanel, setShowAdminPanel] = useState( window.roamAlphaAPI.graph.name === "discourse-graphs" || false, ); @@ -114,6 +123,13 @@ export const SettingsDialog = ({ window.addEventListener("keydown", handleKeyPress); return () => window.removeEventListener("keydown", handleKeyPress); }, []); + const leftSidebarTabHidden = + !leftSidebarEnabled && + (activeTabId === "left-sidebar-personal-settings" || + activeTabId === "left-sidebar-global-settings"); + const visibleTabId = leftSidebarTabHidden + ? "discourse-graph-home-personal" + : activeTabId; return ( @@ -202,6 +218,7 @@ export const SettingsDialog = ({ />