80 lines
3.4 KiB
TypeScript
80 lines
3.4 KiB
TypeScript
|
'use client';
|
||
|
|
||
|
import Link from "next/link";
|
||
|
import RoleGate from "@/components/auth/role-gate";
|
||
|
import {
|
||
|
NavigationMenu,
|
||
|
NavigationMenuContent,
|
||
|
NavigationMenuItem,
|
||
|
NavigationMenuLink,
|
||
|
NavigationMenuList,
|
||
|
NavigationMenuTrigger,
|
||
|
navigationMenuTriggerStyle,
|
||
|
} from "@/components/ui/navigation-menu"
|
||
|
|
||
|
const components: { title: string; href: string; description: string }[] = [
|
||
|
{
|
||
|
title: "Alert Dialog",
|
||
|
href: "/docs/primitives/alert-dialog",
|
||
|
description:
|
||
|
"A modal dialog that interrupts the user with important content and expects a response.",
|
||
|
},
|
||
|
]
|
||
|
|
||
|
const MenuNavigation = () => {
|
||
|
return (
|
||
|
<NavigationMenu
|
||
|
className="absolute top-0 flex justify-center left-auto z-51 flex-wrap">
|
||
|
<p className="w-[300px] text-3xl text-center align-middle invisible md:visible">Tom To Speech</p>
|
||
|
<NavigationMenuList>
|
||
|
{/* <NavigationMenuItem>
|
||
|
<NavigationMenuTrigger>Getting started</NavigationMenuTrigger>
|
||
|
<NavigationMenuContent>
|
||
|
<ul className="grid gap-3 p-6 md:w-[400px] lg:w-[500px] lg:grid-cols-[.75fr_1fr]">
|
||
|
<li className="row-span-3">
|
||
|
<NavigationMenuLink asChild>
|
||
|
<a
|
||
|
className="flex h-full w-full select-none flex-col justify-end rounded-md bg-gradient-to-b from-muted/50 to-muted p-6 no-underline outline-none focus:shadow-md"
|
||
|
href="/">
|
||
|
<div className="mb-2 mt-4 text-lg font-medium">
|
||
|
Tom-to-Speech
|
||
|
</div>
|
||
|
<p className="text-sm leading-tight text-muted-foreground">
|
||
|
Text to speech software
|
||
|
</p>
|
||
|
</a>
|
||
|
</NavigationMenuLink>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</NavigationMenuContent>
|
||
|
</NavigationMenuItem> */}
|
||
|
<NavigationMenuItem>
|
||
|
<Link href="/commands" legacyBehavior passHref>
|
||
|
<NavigationMenuLink className={navigationMenuTriggerStyle()}>
|
||
|
Commands
|
||
|
</NavigationMenuLink>
|
||
|
</Link>
|
||
|
</NavigationMenuItem>
|
||
|
<NavigationMenuItem>
|
||
|
<Link href="/settings" legacyBehavior passHref>
|
||
|
<NavigationMenuLink className={navigationMenuTriggerStyle()}>
|
||
|
Settings
|
||
|
</NavigationMenuLink>
|
||
|
</Link>
|
||
|
</NavigationMenuItem>
|
||
|
<RoleGate
|
||
|
roles={["ADMIN"]}>
|
||
|
<NavigationMenuItem>
|
||
|
<Link href="/admin" legacyBehavior passHref>
|
||
|
<NavigationMenuLink className={navigationMenuTriggerStyle()}>
|
||
|
Admin
|
||
|
</NavigationMenuLink>
|
||
|
</Link>
|
||
|
</NavigationMenuItem>
|
||
|
</RoleGate>
|
||
|
</NavigationMenuList>
|
||
|
</NavigationMenu>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
export default MenuNavigation;
|