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 %}