mirror of
https://github.com/vercel/next-learn.git
synced 2026-07-07 14:09:06 +00:00
* Update next to canary * Update layout.tsx * Use canary * Remove serverActions flag warning * Use unstable_noStore * Add Date.now() test * Update metadataBase url * Create wrapper component for Cards * Update page.tsx * Misc * Delete unused data fetch * Add noStore to /invoices and /customers functions * Remove date.now() * Use canary * Rename component * Fix imports * Update types for useFormStatus and useFormState * Rename folder, add team members * fixed images and added login button pending state * Update dashboard/final-example/app/lib/data.ts Co-authored-by: Matt Kane <m@mk.gg> --------- Co-authored-by: Steven Tey <stevensteel97@gmail.com> Co-authored-by: Matt Kane <m@mk.gg>
37 lines
940 B
TypeScript
37 lines
940 B
TypeScript
import { clsx } from 'clsx';
|
|
import Link from 'next/link';
|
|
import { lusitana } from '@/app/ui/fonts';
|
|
|
|
interface Breadcrumb {
|
|
label: string;
|
|
href: string;
|
|
active?: boolean;
|
|
}
|
|
|
|
export default function Breadcrumbs({
|
|
breadcrumbs,
|
|
}: {
|
|
breadcrumbs: Breadcrumb[];
|
|
}) {
|
|
return (
|
|
<nav aria-label="Breadcrumb" className="mb-6 block">
|
|
<ol className={clsx(lusitana.className, 'flex text-xl md:text-2xl')}>
|
|
{breadcrumbs.map((breadcrumb, index) => (
|
|
<li
|
|
key={breadcrumb.href}
|
|
aria-current={breadcrumb.active}
|
|
className={clsx(
|
|
breadcrumb.active ? 'text-gray-900' : 'text-gray-500',
|
|
)}
|
|
>
|
|
<Link href={breadcrumb.href}>{breadcrumb.label}</Link>
|
|
{index < breadcrumbs.length - 1 ? (
|
|
<span className="mx-3 inline-block">/</span>
|
|
) : null}
|
|
</li>
|
|
))}
|
|
</ol>
|
|
</nav>
|
|
);
|
|
}
|