better-auth/apps/web/modules/saas/shared/components/TabGroup.tsx
 Илья Шалонин 8538ab969a first
2025-10-29 13:43:43 +05:00

36 lines
818 B
TypeScript

"use client";
import Link from "next/link";
import { useSelectedLayoutSegment } from "next/navigation";
import { useMemo } from "react";
export function TabGroup({
items,
className,
}: {
items: { label: string; href: string; segment: string }[];
className?: string;
}) {
const selectedSegment = useSelectedLayoutSegment();
const activeItem = useMemo(() => {
return items.find((item) => item.segment === selectedSegment);
}, [items, selectedSegment]);
return (
<div className={` flex border-b-2 ${className}`}>
{items.map((item) => (
<Link
key={item.href}
href={item.href}
className={`-mb-0.5 block border-b-2 px-6 py-3 ${
item === activeItem
? "border-primary font-bold"
: "border-transparent"
}`}
>
{item.label}
</Link>
))}
</div>
);
}