import { PDFViewer } from "@/components";
import { cn } from "@/lib/utils";
import {
Button,
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
Skeleton,
} from "@/ui";
import { useToast } from "@/ui/use-toast";
import { IListQuotes_Response_DTO } from "@shared/contexts";
import { t } from "i18next";
import { DownloadIcon, MoreVerticalIcon } from "lucide-react";
import { useCallback, useMemo } from "react";
import { Trans } from "react-i18next";
import { useNavigate } from "react-router-dom";
import { useQuotes } from "../hooks";
import { DownloadQuoteDialog } from "./DownloadQuoteDialog";
export const QuotePDFPreview = ({
quote,
className,
}: {
quote?: IListQuotes_Response_DTO;
className: string;
}) => {
const navigate = useNavigate();
const { toast } = useToast();
const { useReport, getQuotePDFFilename, useDownloader } = useQuotes();
const { download, ...downloadProps } = useDownloader();
const {
data: reportData,
isLoading: reportIsLoading,
isPending: reportIsPending,
isFetching: reportIsFetching,
} = useReport(quote?.id);
const file = useMemo(() => (reportData ? { data: reportData.data } : undefined), [reportData]);
const handleFinishDownload = useCallback(() => {
console.log("Download success!!");
toast({
description: t("quotes.downloading_dialog.toast_success"),
});
}, [toast]);
if (!quote) {
return (
Select a quote
);
}
if (reportIsLoading || reportIsPending || reportIsFetching) {
return (
);
}
return (
<>
{t("quotes.list.preview.quote")}
{/*
*/}
{
e.preventDefault();
navigate(`/quotes/edit/${quote.id}`, { relative: "path" });
}}
>
{quote?.reference}
{quote?.date.toString()}
>
);
};