From b5318abe0ac66ef435b43f6d92e5a655ccb3d3f0 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 22 Apr 2026 16:22:09 -0500 Subject: [PATCH] mobile friendly --- src/client/admin/main.ts | 30 ++++++++++++++++++++++++++++++ views/admin/categories.ejs | 25 ++++++++++++++----------- views/admin/dashboard.ejs | 22 ++++++++++++---------- views/admin/edit.ejs | 7 ++++--- views/admin/settings.ejs | 5 +++-- views/admin/upload.ejs | 7 ++++--- views/partials/adminNav.ejs | 7 +++++-- views/partials/adminTopBar.ejs | 27 +++++++++++++++++++++++++++ views/viewer.ejs | 15 ++++++++------- 9 files changed, 107 insertions(+), 38 deletions(-) create mode 100644 views/partials/adminTopBar.ejs diff --git a/src/client/admin/main.ts b/src/client/admin/main.ts index 08c1c2b..efb172b 100644 --- a/src/client/admin/main.ts +++ b/src/client/admin/main.ts @@ -1,5 +1,35 @@ import '../style.css' +// ---- Mobile sidebar toggle ----------------------------------------------- + +const sidebar = document.getElementById('admin-sidebar') +const sidebarOverlay = document.getElementById('sidebar-overlay') +const openBtn = document.getElementById('sidebar-open-btn') + +function openSidebar() { + sidebar?.classList.remove('-translate-x-full') + sidebar?.classList.add('translate-x-0') + sidebarOverlay?.classList.remove('hidden') + document.body.style.overflow = 'hidden' +} + +function closeSidebar() { + sidebar?.classList.add('-translate-x-full') + sidebar?.classList.remove('translate-x-0') + sidebarOverlay?.classList.add('hidden') + document.body.style.overflow = '' +} + +openBtn?.addEventListener('click', openSidebar) +sidebarOverlay?.addEventListener('click', closeSidebar) + +// Close sidebar on nav link click (mobile UX) +document.querySelectorAll('#admin-sidebar .nav-link').forEach(link => { + link.addEventListener('click', () => { + if (window.innerWidth < 1024) closeSidebar() + }) +}) + // ---- Toast utility ------------------------------------------------------- function showToast(msg: string, durationMs = 2500) { diff --git a/views/admin/categories.ejs b/views/admin/categories.ejs index 4ec05e0..8cf4a5c 100644 --- a/views/admin/categories.ejs +++ b/views/admin/categories.ejs @@ -1,9 +1,10 @@ <%- include('../partials/head', { title: 'Categories' }) %> <%- include('../partials/adminNav', { currentPath: '/admin/categories' }) %> +<%- include('../partials/adminTopBar') %> -
+
<%- include('../partials/adminBanner') %> -
+

Categories

Organize your models into groups

@@ -18,12 +19,12 @@

New Category

-
+
-
@@ -47,25 +48,27 @@ <%= cat.model_count %> model<%= cat.model_count !== 1 ? 's' : '' %> - + + class="bg-surface-700 border border-gray-600 rounded-lg px-3 py-1.5 text-sm text-white focus:outline-none focus:border-accent w-full sm:w-40 transition-colors" /> - - + class="bg-surface-700 border border-gray-600 rounded-lg px-3 py-1.5 text-sm text-white placeholder-gray-600 focus:outline-none focus:border-accent w-full sm:w-44 transition-colors" /> +
+ + +
-
-