"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { toast } from "sonner"; import { MoreVertical, ImageIcon, RefreshCw, Trash2, Loader2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { regenerateAction, deleteEpisodeAction } from "@/app/(app)/episodes/actions"; export function EpisodeActions({ episodeId }: { episodeId: string }) { const router = useRouter(); const [busy, setBusy] = useState(false); async function regen(type: "art" | "full") { setBusy(true); const res = await regenerateAction(episodeId, type); setBusy(false); if (res.ok) { toast.success(type === "art" ? "Regenerating cover art…" : "Regenerating episode…"); router.refresh(); } else { toast.error(res.error ?? "Could not regenerate"); } } async function del() { if (!confirm("Delete this episode? This cannot be undone.")) return; const res = await deleteEpisodeAction(episodeId); if (res.ok) { toast.success("Episode deleted"); router.push("/episodes"); router.refresh(); } else { toast.error(res.error ?? "Could not delete"); } } return ( regen("art")}> Regenerate cover art regen("full")}> Regenerate everything Delete episode ); }