"use client";

import { Download, FileText, Share2 } from "lucide-react";
import { Button } from "@/components/ui/button";

export function ExportMenu({ rows = [] }: { rows?: Record<string, unknown>[] }) {
  function exportCsv() {
    if (!rows.length) return;
    const keys = Object.keys(rows[0]);
    const csv = [
      keys.join(","),
      ...rows.map((row) =>
        keys
          .map((key) => {
            const value = String(row[key] ?? "");
            return `"${value.replaceAll("\"", "\"\"")}"`;
          })
          .join(",")
      )
    ].join("\n");
    const blob = new Blob([csv], { type: "text/csv;charset=utf-8" });
    const url = URL.createObjectURL(blob);
    const link = document.createElement("a");
    link.href = url;
    link.download = "oenoscope-export.csv";
    link.click();
    URL.revokeObjectURL(url);
  }

  return (
    <div className="flex flex-wrap gap-2">
      <Button variant="secondary" onClick={() => window.print()}>
        <FileText className="h-4 w-4" strokeWidth={1.5} />
        Exporter en PDF
      </Button>
      <Button variant="secondary" onClick={exportCsv}>
        <Download className="h-4 w-4" strokeWidth={1.5} />
        Exporter en CSV
      </Button>
      <Button variant="ghost" onClick={() => navigator.clipboard?.writeText(window.location.href)}>
        <Share2 className="h-4 w-4" strokeWidth={1.5} />
        Lien partageable
      </Button>
    </div>
  );
}
