"use client"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card } from "@/components/ui/card"; import { useState } from "react"; import { ExternalLink, Trash2 } from "lucide-react"; import { ImportReviewDTO, useDeleteImportReview, useResolveImportReview, } from "@/api/mangamochi"; import { toast } from "sonner"; import { useQueryClient } from "@tanstack/react-query"; interface FailedImportCardProps { failedImport: ImportReviewDTO; queryKey: any; } export function FailedImportCard({ failedImport, queryKey, }: FailedImportCardProps) { const queryClient = useQueryClient(); const [malId, setMalId] = useState(""); const { mutate: mutateDeleteImportReview, isPending: isPendingDeleteImportReview, } = useDeleteImportReview({ mutation: { onSuccess: () => { queryClient.invalidateQueries({ queryKey }); toast.success("Import review removed successfully"); }, }, }); const { mutate: mutateResolveImportReview, isPending: isPendingResolveImportReview, } = useResolveImportReview({ mutation: { onSuccess: () => { queryClient.invalidateQueries({ queryKey }); toast.success("Import review resolved successfully"); }, }, }); const handleResolve = () => { if (!malId.trim()) { alert("Please enter a MyAnimeList ID"); return; } mutateResolveImportReview({ params: { importReviewId: failedImport.id, malId }, }); }; const handleRemove = () => { mutateDeleteImportReview({ id: failedImport.id }); }; const importDate = new Date(failedImport.createdAt).toLocaleDateString(); return (

{failedImport.title}

Provider:{" "} {failedImport.providerName} •{" "} {importDate}

{failedImport.externalUrl && ( )}

{failedImport.reason}

setMalId(e.target.value)} className="mt-2" type="number" />
); }