File
Blob: src/client/components/empty-state.tsx
| 1 | import { type ReactNode } from "react"; |
| 2 | |
| 3 | type Props = { |
| 4 | icon?: ReactNode; |
| 5 | title: string; |
| 6 | description?: string; |
| 7 | action?: ReactNode; |
| 8 | }; |
| 9 | |
| 10 | export function EmptyState({ icon, title, description, action }: Props) { |
| 11 | return ( |
| 12 | <div className="flex flex-col items-center justify-center gap-3 rounded-2xl border border-dashed border-zinc-800/80 bg-zinc-900/30 px-6 py-12 text-center"> |
| 13 | {icon ? <div className="text-zinc-500">{icon}</div> : null} |
| 14 | <h2 className="text-base font-semibold text-zinc-200">{title}</h2> |
| 15 | {description ? <p className="max-w-md text-sm text-zinc-400">{description}</p> : null} |
| 16 | {action ? <div className="mt-1">{action}</div> : null} |
| 17 | </div> |
| 18 | ); |
| 19 | } |