Add shared site header with account dropdown

Add SiteHeader and AccountDropdown components, replace
inline headers across homepage, roadmap, and docs layout.
This commit is contained in:
Aiden Smith
2026-02-26 12:10:31 -05:00
parent 09787926f3
commit 03a6df0848
6 changed files with 367 additions and 59 deletions

View File

@@ -0,0 +1,64 @@
"use client";
import Link from "next/link";
import { CircleUser, User, Key, Bookmark, Bell, BarChart3 } from "lucide-react";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
export function AccountDropdown() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<button className="text-muted-foreground transition-colors hover:text-foreground">
<CircleUser className="size-5" />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-48">
<DropdownMenuLabel>USERNAME</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuItem asChild>
<Link href="/account" className="flex items-center gap-2">
<User className="size-4" />
Account
</Link>
</DropdownMenuItem>
<DropdownMenuItem asChild>
<Link href="/account/api-keys" className="flex items-center gap-2">
<Key className="size-4" />
API Keys
</Link>
</DropdownMenuItem>
<DropdownMenuItem asChild>
<Link
href="/account/saved-domains"
className="flex items-center gap-2"
>
<Bookmark className="size-4" />
Saved Domains
</Link>
</DropdownMenuItem>
<DropdownMenuItem asChild>
<Link
href="/account/notifications"
className="flex items-center gap-2"
>
<Bell className="size-4" />
Notifications
</Link>
</DropdownMenuItem>
<DropdownMenuItem asChild>
<Link href="/account/usage" className="flex items-center gap-2">
<BarChart3 className="size-4" />
Usage
</Link>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
}