From cc2c3def63f47063d4fa8b01f9f61eafdd52805c Mon Sep 17 00:00:00 2001 From: rlaks5757 Date: Tue, 1 Apr 2025 11:58:20 +0900 Subject: template-upload-dialog component 세분화 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/form-data/temp-download-btn.tsx | 40 ++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 components/form-data/temp-download-btn.tsx (limited to 'components/form-data/temp-download-btn.tsx') diff --git a/components/form-data/temp-download-btn.tsx b/components/form-data/temp-download-btn.tsx new file mode 100644 index 00000000..01fff569 --- /dev/null +++ b/components/form-data/temp-download-btn.tsx @@ -0,0 +1,40 @@ +"use client"; + +import React from "react"; +import { useToast } from "@/hooks/use-toast"; +import { toast as toastMessage } from "sonner"; +import { Download } from "lucide-react"; +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 ( + + ); +}; -- cgit v1.2.3 From d8a70fa8802ad066fee68aca54df7fa41461a841 Mon Sep 17 00:00:00 2001 From: rlaks5757 Date: Wed, 2 Apr 2025 11:53:44 +0900 Subject: sample_temp_download_icon, var_list_download_icon 변경 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form-data/form-data-report-temp-upload-dialog.tsx | 18 +++++++++++------- .../form-data/form-data-report-temp-upload-tab.tsx | 7 +++++-- components/form-data/temp-download-btn.tsx | 9 +++++++-- components/form-data/var-list-download-btn.tsx | 9 +++++++-- public/icons/temp_sample_icon.svg | 4 ++++ public/icons/var_list_icon.svg | 4 ++++ 6 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 public/icons/temp_sample_icon.svg create mode 100644 public/icons/var_list_icon.svg (limited to 'components/form-data/temp-download-btn.tsx') 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 51fe5aca..74cfe7c3 100644 --- a/components/form-data/form-data-report-temp-upload-dialog.tsx +++ b/components/form-data/form-data-report-temp-upload-dialog.tsx @@ -72,21 +72,25 @@ export const FormDataReportTempUploadDialog: FC< - +
+ +
- +
- +
+ +
- +
diff --git a/components/form-data/form-data-report-temp-upload-tab.tsx b/components/form-data/form-data-report-temp-upload-tab.tsx index c09ade28..5e6179a8 100644 --- a/components/form-data/form-data-report-temp-upload-tab.tsx +++ b/components/form-data/form-data-report-temp-upload-tab.tsx @@ -2,6 +2,7 @@ import React, { FC, useState } from "react"; import { useToast } from "@/hooks/use-toast"; +import { toast as toastMessage } from "sonner"; import prettyBytes from "pretty-bytes"; import { X, Loader2 } from "lucide-react"; import { Badge } from "@/components/ui/badge"; @@ -92,6 +93,7 @@ export const FormDataReportTempUploadTab: FC< successCount++; setUploadProgress(Math.round((successCount / totalFiles) * 100)); } + toastMessage.success("Template File 업로드 완료!"); } catch (err) { console.error(err); toast({ @@ -102,11 +104,12 @@ export const FormDataReportTempUploadTab: FC< } finally { setIsUploading(false); setUploadProgress(0); + setSelectedFiles([]) } }; return ( - <> +
- +
); }; diff --git a/components/form-data/temp-download-btn.tsx b/components/form-data/temp-download-btn.tsx index 01fff569..a5f963e4 100644 --- a/components/form-data/temp-download-btn.tsx +++ b/components/form-data/temp-download-btn.tsx @@ -1,9 +1,9 @@ "use client"; import React from "react"; +import Image from "next/image"; import { useToast } from "@/hooks/use-toast"; import { toast as toastMessage } from "sonner"; -import { Download } from "lucide-react"; import { saveAs } from "file-saver"; import { Button } from "@/components/ui/button"; import { getReportTempFileData } from "@/lib/forms/services"; @@ -34,7 +34,12 @@ export const TempDownloadBtn = () => { aria-label="Template Sample Download" onClick={downloadTempFile} > - + Template Sample Download Icon ); }; diff --git a/components/form-data/var-list-download-btn.tsx b/components/form-data/var-list-download-btn.tsx index 964844ce..19bb26f9 100644 --- a/components/form-data/var-list-download-btn.tsx +++ b/components/form-data/var-list-download-btn.tsx @@ -1,9 +1,9 @@ "use client"; import React, { FC } from "react"; +import Image from "next/image"; import { useToast } from "@/hooks/use-toast"; import { toast as toastMessage } from "sonner"; -import { BookDown } from "lucide-react"; import ExcelJS from "exceljs"; import { saveAs } from "file-saver"; import { Button } from "@/components/ui/button"; @@ -99,7 +99,12 @@ export const VarListDownloadBtn: FC = ({ aria-label="Variable List Download" onClick={downloadReportVarList} > - + Template Sample Download Icon ); }; diff --git a/public/icons/temp_sample_icon.svg b/public/icons/temp_sample_icon.svg new file mode 100644 index 00000000..4bf9aa6f --- /dev/null +++ b/public/icons/temp_sample_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/var_list_icon.svg b/public/icons/var_list_icon.svg new file mode 100644 index 00000000..792b67be --- /dev/null +++ b/public/icons/var_list_icon.svg @@ -0,0 +1,4 @@ + + + + -- cgit v1.2.3