27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
import { Breadcrumbs, type BreadcrumbItem } from '@/components/Breadcrumbs';
|
|
import { cn } from '@/lib/utils';
|
|
|
|
interface PageHeaderProps {
|
|
title: string;
|
|
description?: string;
|
|
breadcrumbs?: BreadcrumbItem[];
|
|
actions?: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function PageHeader({ title, description, breadcrumbs, actions, className }: PageHeaderProps) {
|
|
return (
|
|
<div className={cn('mb-6 space-y-2', className)}>
|
|
{breadcrumbs && breadcrumbs.length > 0 && <Breadcrumbs items={breadcrumbs} />}
|
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
|
|
<div>
|
|
<h1 className="text-2xl font-semibold tracking-tight">{title}</h1>
|
|
{description && <p className="mt-1 text-sm text-muted-foreground">{description}</p>}
|
|
</div>
|
|
{actions && <div className="flex shrink-0 items-center gap-2">{actions}</div>}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|