From cc2c3def63f47063d4fa8b01f9f61eafdd52805c Mon Sep 17 00:00:00 2001
From: rlaks5757 <rlaks5757@gmail.com>
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 (
+    <Button
+      variant="ghost"
+      className="relative p-2"
+      aria-label="Template Sample Download"
+      onClick={downloadTempFile}
+    >
+      <Download />
+    </Button>
+  );
+};
-- 
cgit v1.2.3

