EmptyState.tsx
959 Bytes
import { LucideIcon } from "lucide-react";
import { Button } from "../ui/button";
interface EmptyStateProps {
icon: LucideIcon;
title: string;
description: string;
actionLabel?: string;
onAction?: () => void;
}
export default function EmptyState({
icon: Icon,
title,
description,
actionLabel,
onAction,
}: EmptyStateProps) {
return (
<div className="flex flex-col items-center justify-center py-16 px-6">
<div className="w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-4">
<Icon className="w-12 h-12 text-gray-400" />
</div>
<h3 className="text-lg font-semibold text-gray-900 mb-2">{title}</h3>
<p className="text-base text-gray-500 text-center max-w-sm mb-6">
{description}
</p>
{actionLabel && onAction && (
<Button onClick={onAction} className="h-12 text-base font-semibold">
{actionLabel}
</Button>
)}
</div>
);
}