diff --git a/frontend/src/lib/components/layout/NavBar.svelte b/frontend/src/lib/components/layout/NavBar.svelte index 95f6846..4592e7c 100644 --- a/frontend/src/lib/components/layout/NavBar.svelte +++ b/frontend/src/lib/components/layout/NavBar.svelte @@ -8,14 +8,15 @@ // Centralized link definition const links = [ - { href: '/', label: 'Home', showWhen: 'always', width: 'w-12' }, + { href: '/', label: 'Home', showWhen: 'non-admin', width: 'w-12' }, { href: '/prices', label: 'Price List', showWhen: 'guest', width: 'w-20' }, { href: '/schedule', label: 'My Schedule', showWhen: 'auth-not-admin', width: 'w-24' }, - { href: '/book', label: 'Book an appointment', showWhen: 'auth', width: 'w-36' }, + { href: '/book', label: 'Book an appointment', showWhen: 'non-admin', width: 'w-36' }, { href: '/portfolio', label: 'Portfolio', showWhen: 'always', width: 'w-20' }, { href: '/admin', label: 'Admin Dashboard', showWhen: 'admin', width: 'w-28' }, { href: '/today', label: 'Today', showWhen: 'admin', width: 'w-28' }, - { href: '/contact', label: 'Contact', showWhen: 'always', width: 'w-16' }, + { href: '/admin/schedule', label: 'Schedule', showWhen: 'admin', width: 'w-20' }, + { href: '/contact', label: 'Contact', showWhen: 'non-admin', width: 'w-16' }, { href: '/account', label: 'My Account', showWhen: 'auth', width: 'w-24' } ]; @@ -35,11 +36,8 @@ const canShow = (link: { href: string; label: string; showWhen: string; width: string }) => { if (authStore.isLoading) return true; - // hide booking link for admins - if (link.href === '/book' && authStore.currentUser?.role === 'admin') return false; - if (link.href === '/contact' && authStore.currentUser?.role === 'admin') return false; - if (link.showWhen === 'always') return true; + if (link.showWhen === 'non-admin' && authStore.currentUser?.role !== 'admin') return true; if (link.showWhen === 'guest' && !authStore.isAuthenticated) return true; if (link.showWhen === 'auth' && authStore.isAuthenticated) return true; if ( @@ -140,34 +138,43 @@ {/each} -