import React from "react";
import { Card } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import type { LucideIcon } from "lucide-react";

export function EmptyState({
  title,
  description,
  icon: Icon,
  action,
}: {
  title: string;
  description: string;
  icon?: LucideIcon;
  action?: React.ReactNode;
}) {
  return (
    <Card className="flex flex-col items-center justify-center gap-3 rounded-xl border-dashed bg-card/40 p-10 text-center">
      {Icon ? <Icon className="h-8 w-8 text-muted-foreground" /> : null}
      <div>
        <div className="text-sm font-semibold">{title}</div>
        <div className="mt-1 text-sm text-muted-foreground">{description}</div>
      </div>
      {action ? <div className="mt-2">{action}</div> : null}
    </Card>
  );
}

export function EmptyTable({
  title,
  description,
  action,
}: {
  title: string;
  description: string;
  action?: React.ReactNode;
}) {
  return (
    <div className="flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed bg-card/30 p-12 text-center">
      <div className="text-sm font-semibold">{title}</div>
      <div className="max-w-xl text-sm text-muted-foreground">{description}</div>
      {action ? <div className="mt-1">{action}</div> : null}
    </div>
  );
}

