import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { useForm } from "@tanstack/react-form"; import axios from "axios"; import { format } from "date-fns"; import { useState } from "react"; import { toast } from "sonner"; export default function ExportInventoryData() { const [open, setOpen] = useState(false); const [saving, setSaving] = useState(false); const form = useForm({ defaultValues: { age: "", }, onSubmit: async ({ value }) => { setSaving(true); try { const res = await axios.get( `/api/logistics/getcyclecount?age=${value.age}`, { responseType: "blob", } ); const blob = new Blob([res.data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", }); const link = document.createElement("a"); link.href = window.URL.createObjectURL(blob); link.download = `CycleCount-${format(new Date(Date.now()), "M-d-yyyy")}.xlsx`; // You can make this dynamic document.body.appendChild(link); link.click(); // Clean up document.body.removeChild(link); window.URL.revokeObjectURL(link.href); toast.success(`File Downloaded`); setSaving(false); setOpen(false); form.reset(); } catch (error) { console.log(error); console.log(`There was an error getting cycle counts.`); } }, }); return (