| import { cn } from '@/lib/utils' | |
| import { Card, CardDescription, CardTitle } from '@/components/ui/Card' | |
| import { FilesIcon } from 'lucide-react' | |
| interface EmptyCardProps extends React.ComponentPropsWithoutRef<typeof Card> { | |
| title: string | |
| description?: string | |
| action?: React.ReactNode | |
| icon?: React.ComponentType<{ className?: string }> | |
| } | |
| export default function EmptyCard({ | |
| title, | |
| description, | |
| icon: Icon = FilesIcon, | |
| action, | |
| className, | |
| ...props | |
| }: EmptyCardProps) { | |
| return ( | |
| <Card | |
| className={cn( | |
| 'flex w-full flex-col items-center justify-center space-y-6 bg-transparent p-16', | |
| className | |
| )} | |
| {...props} | |
| > | |
| <div className="mr-4 shrink-0 rounded-full border border-dashed p-4"> | |
| <Icon className="text-muted-foreground size-8" aria-hidden="true" /> | |
| </div> | |
| <div className="flex flex-col items-center gap-1.5 text-center"> | |
| <CardTitle>{title}</CardTitle> | |
| {description ? <CardDescription>{description}</CardDescription> : null} | |
| </div> | |
| {action ? action : null} | |
| </Card> | |
| ) | |
| } | |