Files
Hayden Bleasel 0edc599927 Docs updates (#52)
* Update meta.json

* Create posting-messages.mdx

* Colocate Slack app info

* Improve feature matrix

* Create API Reference

* Update for Channels

* Draft first guide

* Update Geistdocs
2026-02-17 13:01:15 -08:00

53 lines
1.5 KiB
TypeScript

"use client";
import DynamicLink from "fumadocs-core/dynamic-link";
import { ExternalLinkIcon } from "lucide-react";
import {
NavigationMenu,
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
} from "@/components/ui/navigation-menu";
import { useIsMobile } from "@/hooks/use-mobile";
import { cn } from "@/lib/utils";
interface DesktopMenuProps {
className?: string;
items: { label: string; href: string }[];
}
export const DesktopMenu = ({ items, className }: DesktopMenuProps) => {
const isMobile = useIsMobile();
return (
<NavigationMenu viewport={isMobile}>
<NavigationMenuList className={cn("gap-px", className)}>
{items.map((item) => (
<NavigationMenuItem key={item.href}>
<NavigationMenuLink
asChild
className="rounded-md px-3 font-medium text-sm"
>
{item.href.startsWith("http") ? (
<a
className="flex flex-row items-center gap-2"
href={item.href}
rel="noopener"
target="_blank"
>
{item.label}
<ExternalLinkIcon className="size-3.5" />
</a>
) : (
<DynamicLink href={`/[lang]${item.href}`}>
{item.label}
</DynamicLink>
)}
</NavigationMenuLink>
</NavigationMenuItem>
))}
</NavigationMenuList>
</NavigationMenu>
);
};