clear old assets, new ci/cd flow
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { createSignal, onMount, onCleanup, Show } from "solid-js";
|
||||
import { A } from "@solidjs/router";
|
||||
import { A, useLocation } from "@solidjs/router";
|
||||
import { cn } from "~/lib/utils";
|
||||
import { Button } from "~/components/ui";
|
||||
import { Typewriter } from "~/components/ui/Typewriter";
|
||||
@@ -119,11 +119,19 @@ function ThemeToggle() {
|
||||
);
|
||||
}
|
||||
|
||||
const navLinks = [
|
||||
const marketingLinks = [
|
||||
{ label: "Features", href: "/features" },
|
||||
{ label: "Pricing", href: "/pricing" },
|
||||
{ label: "Blog", href: "/blog" },
|
||||
];
|
||||
|
||||
const productLinks = [
|
||||
{ label: "Dashboard", href: "/dashboard" },
|
||||
{ label: "DarkWatch", href: "/darkwatch" },
|
||||
{ label: "VoicePrint", href: "/voiceprint" },
|
||||
{ label: "SpamShield", href: "/spamshield" },
|
||||
{ label: "HomeTitle", href: "/hometitle" },
|
||||
{ label: "RemoveBrokers", href: "/removebrokers" },
|
||||
];
|
||||
|
||||
function RealtimeIndicator() {
|
||||
@@ -174,6 +182,7 @@ function RealtimeIndicator() {
|
||||
export default function Navbar() {
|
||||
const [mobileOpen, setMobileOpen] = createSignal(false);
|
||||
const [scrolled, setScrolled] = createSignal(false);
|
||||
const location = useLocation();
|
||||
|
||||
onMount(() => {
|
||||
const onScroll = () => {
|
||||
@@ -183,6 +192,29 @@ export default function Navbar() {
|
||||
onCleanup(() => window.removeEventListener("scroll", onScroll));
|
||||
});
|
||||
|
||||
const isActive = (href: string) => {
|
||||
if (href === "/dashboard") return location.pathname === "/dashboard";
|
||||
return location.pathname.startsWith(href);
|
||||
};
|
||||
|
||||
const NavLink = (props: { href: string; label: string; mobile?: boolean }) => (
|
||||
<A
|
||||
href={props.href}
|
||||
class={cn(
|
||||
props.mobile
|
||||
? "block px-3 py-2 rounded-lg text-base font-medium transition-colors"
|
||||
: "text-sm font-medium transition-colors",
|
||||
isActive(props.href)
|
||||
? "text-[var(--color-text-primary)]"
|
||||
: "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]",
|
||||
props.mobile && !isActive(props.href) && "hover:bg-[var(--color-bg-secondary)]",
|
||||
)}
|
||||
onClick={() => props.mobile && setMobileOpen(false)}
|
||||
>
|
||||
{props.label}
|
||||
</A>
|
||||
);
|
||||
|
||||
return (
|
||||
<nav
|
||||
class={cn(
|
||||
@@ -201,14 +233,12 @@ export default function Navbar() {
|
||||
</A>
|
||||
|
||||
<div class="hidden md:flex items-center gap-6">
|
||||
{navLinks.map(link => (
|
||||
<A
|
||||
href={link.href}
|
||||
class="text-sm font-medium text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] transition-colors"
|
||||
>
|
||||
{link.label}
|
||||
</A>
|
||||
))}
|
||||
<SignedOut>
|
||||
{marketingLinks.map(link => <NavLink href={link.href} label={link.label} />)}
|
||||
</SignedOut>
|
||||
<SignedIn>
|
||||
{productLinks.map(link => <NavLink href={link.href} label={link.label} />)}
|
||||
</SignedIn>
|
||||
</div>
|
||||
|
||||
<div class="hidden md:flex items-center gap-3">
|
||||
@@ -216,9 +246,6 @@ export default function Navbar() {
|
||||
<SignedIn>
|
||||
<UserButton showName />
|
||||
<RealtimeIndicator />
|
||||
<Button variant="secondary" size="sm">
|
||||
<A href="/dashboard">Dashboard</A>
|
||||
</Button>
|
||||
</SignedIn>
|
||||
<SignedOut>
|
||||
<Button variant="secondary" size="sm">
|
||||
@@ -276,19 +303,20 @@ export default function Navbar() {
|
||||
<Show when={mobileOpen()}>
|
||||
<div class="md:hidden glass border-t border-[var(--color-border)]">
|
||||
<div class="px-4 py-4 space-y-1">
|
||||
{navLinks.map(link => (
|
||||
<A
|
||||
href={link.href}
|
||||
class="block px-3 py-2 rounded-lg text-base font-medium text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-bg-secondary)] transition-colors"
|
||||
onClick={() => setMobileOpen(false)}
|
||||
>
|
||||
{link.label}
|
||||
</A>
|
||||
))}
|
||||
<SignedOut>
|
||||
{marketingLinks.map(link => (
|
||||
<NavLink href={link.href} label={link.label} mobile />
|
||||
))}
|
||||
</SignedOut>
|
||||
<SignedIn>
|
||||
{productLinks.map(link => (
|
||||
<NavLink href={link.href} label={link.label} mobile />
|
||||
))}
|
||||
</SignedIn>
|
||||
<div class="pt-3 flex flex-col gap-2">
|
||||
<SignedIn>
|
||||
<Button variant="secondary" class="w-full">
|
||||
<A href="/dashboard">Dashboard</A>
|
||||
<A href="/dashboard">Go to Dashboard</A>
|
||||
</Button>
|
||||
</SignedIn>
|
||||
<SignedOut>
|
||||
|
||||
Reference in New Issue
Block a user