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()}
); };