From cbb4c7fe0b94459162ad5e998bc05cd293e0ff96 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 11 Aug 2025 09:02:00 +0000 Subject: (대표님) 입찰, EDP 변경사항 대응, spreadJS 오류 수정, 벤더실사 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form-data/form-data-report-batch-dialog.tsx | 57 +++++++++++++--------- 1 file changed, 34 insertions(+), 23 deletions(-) (limited to 'components/form-data/form-data-report-batch-dialog.tsx') diff --git a/components/form-data/form-data-report-batch-dialog.tsx b/components/form-data/form-data-report-batch-dialog.tsx index 53f8c489..fdd36c80 100644 --- a/components/form-data/form-data-report-batch-dialog.tsx +++ b/components/form-data/form-data-report-batch-dialog.tsx @@ -7,6 +7,8 @@ import React, { useState, useEffect, } from "react"; +import { useParams } from "next/navigation"; +import { useTranslation } from "@/i18n/client"; import { useToast } from "@/hooks/use-toast"; import { toast as toastMessage } from "sonner"; import prettyBytes from "pretty-bytes"; @@ -84,6 +86,10 @@ export const FormDataReportBatchDialog: FC = ({ formCode, }) => { const { toast } = useToast(); + const params = useParams(); + const lng = (params?.lng as string) || "ko"; + const { t } = useTranslation(lng, "engineering"); + const [tempList, setTempList] = useState([]); const [selectTemp, setSelectTemp] = useState(""); const [selectedFiles, setSelectedFiles] = useState([]); @@ -115,9 +121,9 @@ export const FormDataReportBatchDialog: FC = ({ fileRejections.forEach((rejection) => { toast({ variant: "destructive", - title: "File Error", + title: t("batchReport.fileError"), description: `${rejection.file.name}: ${ - rejection.errors[0]?.message || "Upload failed" + rejection.errors[0]?.message || t("batchReport.uploadFailed") }`, }); }); @@ -164,7 +170,7 @@ export const FormDataReportBatchDialog: FC = ({ if (requestCreateReport.ok) { const blob = await requestCreateReport.blob(); saveAs(blob, `${formCode}.pdf`); - toastMessage.success("Report 다운로드 완료!"); + toastMessage.success(t("batchReport.downloadComplete")); } else { const err = await requestCreateReport.json(); console.error("에러:", err); @@ -173,8 +179,8 @@ export const FormDataReportBatchDialog: FC = ({ } catch (err) { console.error(err); toast({ - title: "Error", - description: "Report 생성 중 오류가 발생했습니다.", + title: t("batchReport.error"), + description: t("batchReport.reportGenerationError"), variant: "destructive", }); } finally { @@ -219,7 +225,7 @@ export const FormDataReportBatchDialog: FC = ({ const blob = await requestCreateReport.blob(); setGeneratedFileBlob(blob); setPublishDialogOpen(true); - toastMessage.success("문서가 생성되었습니다. 발행 정보를 입력해주세요."); + toastMessage.success(t("batchReport.documentGenerated")); } else { const err = await requestCreateReport.json(); console.error("에러:", err); @@ -228,8 +234,8 @@ export const FormDataReportBatchDialog: FC = ({ } catch (err) { console.error(err); toast({ - title: "Error", - description: "문서 생성 중 오류가 발생했습니다.", + title: t("batchReport.error"), + description: t("batchReport.documentGenerationError"), variant: "destructive", }); } finally { @@ -242,17 +248,16 @@ export const FormDataReportBatchDialog: FC = ({ - Vendor Document Create + {t("batchReport.dialogTitle")} - Vendor Document Template을 선택하신 후 갑지를 업로드하여 주시기 - 바랍니다. + {t("batchReport.dialogDescription")}
- +
- + = ({
- 파일을 여기에 드롭하세요 + {t("batchReport.dropFileHere")} - 또는 클릭하여 파일을 선택하세요. 최대 크기:{" "} - {maxSize ? prettyBytes(maxSize) : "무제한"} + {t("batchReport.orClickToSelect", { + maxSize: maxSize ? prettyBytes(maxSize) : t("batchReport.unlimited") + })}
)} @@ -304,15 +310,18 @@ export const FormDataReportBatchDialog: FC = ({
- 선택된 파일 ({selectedFiles.length}) + {t("batchReport.selectedFiles", { count: selectedFiles.length })}
- {selectedFiles.length}개 파일 + + {t("batchReport.fileCount", { count: selectedFiles.length })} +
@@ -331,7 +340,7 @@ export const FormDataReportBatchDialog: FC = ({ className="mr-2" > {isUploading && } - Publish + {t("batchReport.publish")} @@ -364,12 +373,14 @@ interface UploadFileItemProps { selectedFiles: File[]; removeFile: (index: number) => void; isUploading: boolean; + t: (key: string, options?: any) => string; } const UploadFileItem: FC = ({ selectedFiles, removeFile, isUploading, + t, }) => { return ( @@ -388,7 +399,7 @@ const UploadFileItem: FC = ({ disabled={isUploading} > - Remove + {t("batchReport.remove")} -- cgit v1.2.3