${selectedLibrary ? getLibraryName(libraries, selectedLibrary) : selectedTag ? `#${selectedTag}` : 'All Documents'}

- +
@@ -120,12 +124,54 @@ export async function renderDashboard(app) {
`; + // Mobile sidebar functions + window.toggleMobileSidebar = function() { + const sidebar = document.getElementById('sidebar'); + const overlay = document.querySelector('.sidebar-overlay'); + if (sidebar) { + sidebar.classList.toggle('mobile-open'); + if (overlay) overlay.classList.toggle('active'); + } + }; + + window.closeMobileSidebar = function() { + const sidebar = document.getElementById('sidebar'); + const overlay = document.querySelector('.sidebar-overlay'); + if (sidebar) { + sidebar.classList.remove('mobile-open'); + if (overlay) overlay.classList.remove('active'); + } + }; + // Event listeners const searchInput = document.getElementById('search-input'); searchInput.oninput = (e) => { searchQuery = e.target.value; render(); }; + + // Sidebar item listeners + document.querySelectorAll('[data-action="home"]').forEach(el => { + el.addEventListener('click', (e) => { + e.stopPropagation(); + sidebarCallbacks.onHome(); + closeMobileSidebar(); + }); + }); + document.querySelectorAll('[data-action="library"]').forEach(el => { + el.addEventListener('click', (e) => { + e.stopPropagation(); + sidebarCallbacks.onSelectLibrary(el.getAttribute('data-library-id')); + closeMobileSidebar(); + }); + }); + document.querySelectorAll('[data-action="tag"]').forEach(el => { + el.addEventListener('click', (e) => { + e.stopPropagation(); + sidebarCallbacks.onSelectTag(el.getAttribute('data-tag')); + closeMobileSidebar(); + }); + }); } render(); diff --git a/public/js/views/projectView.js b/public/js/views/projectView.js index 46f01d9..678d539 100644 --- a/public/js/views/projectView.js +++ b/public/js/views/projectView.js @@ -74,6 +74,7 @@ export async function renderProjectView(app) { appEl.innerHTML = `
+
+
-