misc
This commit is contained in:
@@ -14,14 +14,15 @@ const isReq = getSubsiteByHost(host)?.short === 'req' || getSubsiteByPath(Astro.
|
||||
// Nav is the standard site navigation — whitelabel logic belongs in SubNav
|
||||
const isLoggedIn = Boolean(user);
|
||||
const userDisplayName = user?.user ?? null;
|
||||
const isAdmin = user?.roles?.includes('admin') ?? false;
|
||||
|
||||
const navItems = [
|
||||
{ label: "Home", href: "/" },
|
||||
{ label: "Radio", href: "/radio" },
|
||||
{ label: "Memes", href: "/memes" },
|
||||
{ label: "TRip", href: "/TRip", auth: true, icon: "pirate" },
|
||||
{ label: "Lighting", href: "/lighting", auth: true },
|
||||
{ label: "Discord Logs", href: "/discord-logs", auth: true },
|
||||
{ label: "Lighting", href: "/lighting", auth: true },
|
||||
{ label: "Status", href: "https://status.boatson.boats", icon: "external" },
|
||||
{ label: "Git", href: "https://kode.boatson.boats", icon: "external" },
|
||||
{ label: "Login", href: "/login", guestOnly: true },
|
||||
@@ -62,7 +63,6 @@ const currentPath = Astro.url.pathname;
|
||||
{visibleNavItems.map((item) => {
|
||||
const isExternal = item.href?.startsWith("http");
|
||||
const isAuthedPath = item.auth ?? false;
|
||||
const isTRipLink = item.href?.startsWith("/TRip");
|
||||
const normalize = (url) => (url || '/').replace(/\/+$/, '') || '/';
|
||||
const normalizedCurrent = normalize(currentPath);
|
||||
const normalizedHref = normalize(item.href);
|
||||
@@ -83,7 +83,6 @@ const currentPath = Astro.url.pathname;
|
||||
target={isExternal ? "_blank" : undefined}
|
||||
rel={(isExternal || isAuthedPath) ? "external" : undefined}
|
||||
onclick={item.onclick}
|
||||
data-astro-reload={isTRipLink ? true : undefined}
|
||||
>
|
||||
{item.label}
|
||||
{item.icon === "external" && (
|
||||
@@ -102,7 +101,7 @@ const currentPath = Astro.url.pathname;
|
||||
</ul>
|
||||
|
||||
{isLoggedIn && userDisplayName && (
|
||||
<div class="nav-user-inline" title={`Logged in as ${userDisplayName}`}>
|
||||
<div class:list={['nav-user-inline', isAdmin && 'nav-user-inline--admin']} title={`Logged in as ${userDisplayName}`}>
|
||||
<span class="nav-user-inline__icon" aria-hidden="true" set:html={userIconSvg}></span>
|
||||
<span class="nav-user-inline__name">{userDisplayName}</span>
|
||||
</div>
|
||||
@@ -159,7 +158,7 @@ const currentPath = Astro.url.pathname;
|
||||
class="mobile-menu-dropdown md:hidden"
|
||||
>
|
||||
{isLoggedIn && userDisplayName && (
|
||||
<div class="nav-user-inline nav-user-inline--mobile" title={`Logged in as ${userDisplayName}`}>
|
||||
<div class:list={['nav-user-inline', 'nav-user-inline--mobile', isAdmin && 'nav-user-inline--admin']} title={`Logged in as ${userDisplayName}`}>
|
||||
<span class="nav-user-inline__icon" aria-hidden="true" set:html={userIconSvg}></span>
|
||||
<span class="nav-user-inline__name">{userDisplayName}</span>
|
||||
</div>
|
||||
@@ -168,7 +167,6 @@ const currentPath = Astro.url.pathname;
|
||||
{visibleNavItems.map((item) => {
|
||||
const isExternal = item.href?.startsWith("http");
|
||||
const isAuthedPath = item.auth ?? false;
|
||||
const isTRipLink = item.href?.startsWith("/TRip");
|
||||
const normalize = (url) => (url || '/').replace(/\/+$/, '') || '/';
|
||||
const normalizedCurrent = normalize(currentPath);
|
||||
const normalizedHref = normalize(item.href);
|
||||
@@ -190,7 +188,6 @@ const currentPath = Astro.url.pathname;
|
||||
target={isExternal ? "_blank" : undefined}
|
||||
rel={(isExternal || isAuthedPath) ? "external" : undefined}
|
||||
onclick={item.onclick}
|
||||
data-astro-reload={isTRipLink ? true : undefined}
|
||||
>
|
||||
<span style="color:inherit;">{item.label}</span>
|
||||
{item.icon === "external" && (
|
||||
|
||||
Reference in New Issue
Block a user