From 124d399d1f71e430bbe58369c1f37a7c18495f8f Mon Sep 17 00:00:00 2001 From: Gigi Date: Fri, 10 Oct 2025 16:56:19 +0100 Subject: [PATCH] feat: add mobile sidebar state management to useBookmarksUI --- src/hooks/useBookmarksUI.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/hooks/useBookmarksUI.ts b/src/hooks/useBookmarksUI.ts index be2f8d1a..9e02af3f 100644 --- a/src/hooks/useBookmarksUI.ts +++ b/src/hooks/useBookmarksUI.ts @@ -3,12 +3,15 @@ import { NostrEvent } from 'nostr-tools' import { HighlightVisibility } from '../components/HighlightsPanel' import { UserSettings } from '../services/settingsService' import { ViewMode } from '../components/Bookmarks' +import { useIsMobile } from './useMediaQuery' interface UseBookmarksUIParams { settings: UserSettings } export const useBookmarksUI = ({ settings }: UseBookmarksUIParams) => { + const isMobile = useIsMobile() + const [isSidebarOpen, setIsSidebarOpen] = useState(false) const [isCollapsed, setIsCollapsed] = useState(true) const [isHighlightsCollapsed, setIsHighlightsCollapsed] = useState(true) const [viewMode, setViewMode] = useState('compact') @@ -23,6 +26,16 @@ export const useBookmarksUI = ({ settings }: UseBookmarksUIParams) => { mine: true }) + // Auto-collapse sidebar on mobile based on settings + useEffect(() => { + const autoCollapse = settings.autoCollapseSidebarOnMobile !== false + if (isMobile && autoCollapse) { + setIsSidebarOpen(false) + } else if (!isMobile) { + setIsSidebarOpen(true) + } + }, [isMobile, settings.autoCollapseSidebarOnMobile]) + // Apply UI settings useEffect(() => { if (settings.defaultViewMode) setViewMode(settings.defaultViewMode) @@ -34,7 +47,15 @@ export const useBookmarksUI = ({ settings }: UseBookmarksUIParams) => { }) }, [settings]) + const toggleSidebar = () => { + setIsSidebarOpen(prev => !prev) + } + return { + isMobile, + isSidebarOpen, + setIsSidebarOpen, + toggleSidebar, isCollapsed, setIsCollapsed, isHighlightsCollapsed,