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} - + + + + {#if unreadCount > 0} + + {unreadCount > 9 ? '9+' : unreadCount} + + {/if} + + {/if} + {#if !isLoading && !isAuthenticated && $page.url.pathname !== '/login'} + + {/if} + {#if isLoading} + + {/if} +
@@ -188,7 +195,7 @@ {#if mobileMenuOpen}
-
+
{#each links as link} {#if canShow(link)} {#if isLoading} @@ -196,7 +203,7 @@ {:else} {link.label} @@ -207,11 +214,13 @@ {#if isAuthenticated} Notifications {#if unreadCount > 0} - + {unreadCount > 9 ? '9+' : unreadCount} {/if}