import { ChevronLeft, ChevronRight, CreditCard, DownloadIcon, FilePenLineIcon, MoreVertical, } from "lucide-react"; import { cn } from "@/lib/utils"; import { Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, Pagination, PaginationContent, PaginationItem, Separator, Tabs, TabsContent, TabsList, TabsTrigger, } from "@/ui"; import { useToast } from "@/ui/use-toast"; import { t } from "i18next"; import { useCallback } from "react"; import { useNavigate } from "react-router-dom"; import { useQuotes } from "../hooks"; import { DownloadQuoteDialog } from "./DownloadQuoteDialog"; import { QuoteStatusEditor } from "./editors"; type QuoteResumeProps = { quoteId: string; className: string; }; export const QuoteResume = ({ quoteId, className }: QuoteResumeProps) => { const navigate = useNavigate(); const { toast } = useToast(); const { useOne, useSetStatus, useDownloader, getQuotePDFFilename } = useQuotes(); const { data, status, error: queryError } = useOne(quoteId); const { mutate: setStatusMutation } = useSetStatus(quoteId); const { download, ...downloadProps } = useDownloader(); const handleOnChangeStatus = (quoteId: string, newStatus: string) => { setStatusMutation( { newStatus }, { onSuccess: () => { toast({ description: t("quotes.quote_status_editor.toast_status_changed"), }); }, } ); }; const handleFinishDownload = useCallback(() => { toast({ description: t("quotes.downloading_dialog.toast_success"), }); }, [toast]); const handleDownload = useCallback(() => { if (data) download(data.id, getQuotePDFFilename(data)); }, [data]); if (status === "error") { return null; } if (status !== "success") { return null; } if (!data) { return (

Select a quote

); } return ( <> {`${t("quotes.list.preview.quote")} #${data.reference}`} Edit Export Trash Resume Preview
Quote information
{t("quotes.form_fields.date.label")}
{new Date(data.date).toLocaleDateString()}
Customer Information
Date: {new Date(data.date).toLocaleDateString()}
{data.customer_information}
Customer
Liam Johnson
Order Details
  • Glimmer Lamps x 2 $250.00
  • Aqua Filters x 1 $49.00
  • Subtotal $299.00
  • Shipping $5.00
  • Tax $25.00
  • Total $329.00
Shipping Information
Liam Johnson 1234 Main St. Anytown, CA 12345
Billing Information
Same as shipping address
Payment Information
Visa
**** **** **** 4532
Updated...
); };