diff --git a/app/templates/base.html b/app/templates/base.html index 3676f31..6cf449a 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -496,8 +496,19 @@ favoriteIds: new Set([{% for p in favorite_pages %}'{{ p.id }}'{% if not loop.last %},{% endif %}{% endfor %}]), // ── Sections collapsible ── - sectionsOpen: { recents: true, private: true, meetings: true, favorites: true, agents: true, shared: true, apps: true }, - toggleSection(key) { this.sectionsOpen[key] = !this.sectionsOpen[key]; this.sectionsOpen = Object.assign({}, this.sectionsOpen); }, + sectionsOpen: (function() { + var def = { recents: true, private: true, meetings: true, favorites: true, agents: true, shared: true, apps: true, workspace: true }; + try { + var saved = JSON.parse(localStorage.getItem('fd_sections') || '{}'); + return Object.assign(def, saved); + } catch(e) { return def; } + })(), + toggleSection(key) { + this.sectionsOpen[key] = !this.sectionsOpen[key]; + this.sectionsOpen = Object.assign({}, this.sectionsOpen); + try { localStorage.setItem('fd_sections', JSON.stringify(this.sectionsOpen)); } + catch(e) {} + }, toggleWorkspaceMenu() { if (window.innerWidth <= 768) { this.mobileSidebarOpen = !this.mobileSidebarOpen; @@ -814,9 +825,11 @@ catch(e) {} }, navigateToFolder(id) { - // Save expansion state before navigating - try { localStorage.setItem('fd_expanded_folders', JSON.stringify(this.expandedFolders)); } - catch(e) {} + // Save expansion + sections state before navigating + try { + localStorage.setItem('fd_expanded_folders', JSON.stringify(this.expandedFolders)); + localStorage.setItem('fd_sections', JSON.stringify(this.sectionsOpen)); + } catch(e) {} window.location = `/local-workspace?folder=${id}`; }, @@ -841,6 +854,18 @@ } }; } + + // Auto-save sidebar state before navigation (covers clicks) + window.addEventListener('beforeunload', function() { + try { + var el = document.querySelector('[x-data]'); + if (el && el.__x) { + var data = el.__x.$data; + if (data.expandedFolders) localStorage.setItem('fd_expanded_folders', JSON.stringify(data.expandedFolders)); + if (data.sectionsOpen) localStorage.setItem('fd_sections', JSON.stringify(data.sectionsOpen)); + } + } catch(e) {} + }); {% block scripts %}{% endblock %}