diff options
Diffstat (limited to 'components/form-data')
| -rw-r--r-- | components/form-data/form-data-report-temp-upload-dialog.tsx | 112 | ||||
| -rw-r--r-- | components/form-data/temp-download-btn.tsx | 46 |
2 files changed, 56 insertions, 102 deletions
diff --git a/components/form-data/form-data-report-temp-upload-dialog.tsx b/components/form-data/form-data-report-temp-upload-dialog.tsx index e4d78248..fe137daf 100644 --- a/components/form-data/form-data-report-temp-upload-dialog.tsx +++ b/components/form-data/form-data-report-temp-upload-dialog.tsx @@ -11,17 +11,11 @@ import { import { Button } from "@/components/ui/button"; import { Label } from "@/components/ui/label"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; -import { TempDownloadBtn } from "./temp-download-btn"; import { VarListDownloadBtn } from "./var-list-download-btn"; import { FormDataReportTempUploadTab } from "./form-data-report-temp-upload-tab"; import { FormDataReportTempUploadedListTab } from "./form-data-report-temp-uploaded-list-tab"; import { DataTableColumnJSON } from "./form-data-table-columns"; +import { FileActionsDropdown } from "../ui/file-actions"; interface FormDataReportTempUploadDialogProps { columnsJSON: DataTableColumnJSON[]; @@ -44,54 +38,60 @@ export const FormDataReportTempUploadDialog: FC< formCode, uploaderType, }) => { - const [tabValue, setTabValue] = useState<"upload" | "uploaded">("upload"); + const [tabValue, setTabValue] = useState<"upload" | "uploaded">("upload"); - return ( - <Dialog open={open} onOpenChange={setOpen}> - <DialogContent className="w-[600px]" style={{ maxWidth: "none" }}> - <DialogHeader className="gap-2"> - <DialogTitle>Vendor Document Template</DialogTitle> - <DialogDescription className="flex justify-around gap-[16px] "> - {/* 사용하시고자 하는 Vendor Document Template(.docx)를 업로드 + return ( + <Dialog open={open} onOpenChange={setOpen}> + <DialogContent className="w-[600px]" style={{ maxWidth: "none" }}> + <DialogHeader className="gap-2"> + <DialogTitle>Vendor Document Template</DialogTitle> + <DialogDescription className="flex justify-around gap-[16px] "> + {/* 사용하시고자 하는 Vendor Document Template(.docx)를 업로드 하여주시기 바랍니다. */} - <TempDownloadBtn /> - <VarListDownloadBtn columnsJSON={columnsJSON} formCode={formCode} /> - </DialogDescription> - </DialogHeader> - <Tabs value={tabValue}> - <div className="flex justify-between items-center"> - <TabsList className="w-full"> - <TabsTrigger - value="upload" - onClick={() => setTabValue("upload")} - className="flex-1" - > - Upload Template File - </TabsTrigger> - <TabsTrigger - value="uploaded" - onClick={() => setTabValue("uploaded")} - className="flex-1" - > - Uploaded Template File List - </TabsTrigger> - </TabsList> - </div> - <TabsContent value="upload"> - <FormDataReportTempUploadTab - packageId={packageId} - formId={formId} - uploaderType={uploaderType} - /> - </TabsContent> - <TabsContent value="uploaded"> - <FormDataReportTempUploadedListTab - packageId={packageId} - formId={formId} - /> - </TabsContent> - </Tabs> - </DialogContent> - </Dialog> - ); -};
\ No newline at end of file + <FileActionsDropdown + filePath={"/vendorFormReportSample"} + fileName={"sample_template_file.docx"} + variant="ghost" + size="icon" + description="Sample File" + /> + <VarListDownloadBtn columnsJSON={columnsJSON} formCode={formCode} /> + </DialogDescription> + </DialogHeader> + <Tabs value={tabValue}> + <div className="flex justify-between items-center"> + <TabsList className="w-full"> + <TabsTrigger + value="upload" + onClick={() => setTabValue("upload")} + className="flex-1" + > + Upload Template File + </TabsTrigger> + <TabsTrigger + value="uploaded" + onClick={() => setTabValue("uploaded")} + className="flex-1" + > + Uploaded Template File List + </TabsTrigger> + </TabsList> + </div> + <TabsContent value="upload"> + <FormDataReportTempUploadTab + packageId={packageId} + formId={formId} + uploaderType={uploaderType} + /> + </TabsContent> + <TabsContent value="uploaded"> + <FormDataReportTempUploadedListTab + packageId={packageId} + formId={formId} + /> + </TabsContent> + </Tabs> + </DialogContent> + </Dialog> + ); + };
\ No newline at end of file diff --git a/components/form-data/temp-download-btn.tsx b/components/form-data/temp-download-btn.tsx deleted file mode 100644 index 793022d6..00000000 --- a/components/form-data/temp-download-btn.tsx +++ /dev/null @@ -1,46 +0,0 @@ -"use client"; - -import React from "react"; -import Image from "next/image"; -import { useToast } from "@/hooks/use-toast"; -import { toast as toastMessage } from "sonner"; -import { saveAs } from "file-saver"; -import { Button } from "@/components/ui/button"; -import { getReportTempFileData } from "@/lib/forms/services"; - -export const TempDownloadBtn = () => { - const { toast } = useToast(); - - const downloadTempFile = async () => { - try { - const { fileName, fileType, base64 } = await getReportTempFileData(); - - saveAs(`data:${fileType};base64,${base64}`, fileName); - - toastMessage.success("Report Sample File 다운로드 완료!"); - } catch (err) { - console.log(err); - toast({ - title: "Error", - description: "Sample File을 찾을 수가 없습니다.", - variant: "destructive", - }); - } - }; - return ( - <Button - variant="outline" - className="relative px-[8px] py-[6px] flex-1" - aria-label="Template Sample Download" - onClick={downloadTempFile} - > - <Image - src="/icons/temp_sample_icon.svg" - alt="Template Sample Download Icon" - width={16} - height={16} - /> - <div className='text-[12px]'>Sample Template Download</div> - </Button> - ); -};
\ No newline at end of file |
