summaryrefslogtreecommitdiff
path: root/components/form-data-plant/form-data-report-temp-upload-dialog.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'components/form-data-plant/form-data-report-temp-upload-dialog.tsx')
-rw-r--r--components/form-data-plant/form-data-report-temp-upload-dialog.tsx101
1 files changed, 101 insertions, 0 deletions
diff --git a/components/form-data-plant/form-data-report-temp-upload-dialog.tsx b/components/form-data-plant/form-data-report-temp-upload-dialog.tsx
new file mode 100644
index 00000000..59ea6ade
--- /dev/null
+++ b/components/form-data-plant/form-data-report-temp-upload-dialog.tsx
@@ -0,0 +1,101 @@
+"use client";
+
+import React, { FC, Dispatch, SetStateAction, useState } from "react";
+import { useParams } from "next/navigation";
+import { useTranslation } from "@/i18n/client";
+import {
+ Dialog,
+ DialogContent,
+ DialogHeader,
+ DialogTitle,
+ DialogDescription,
+} from "@/components/ui/dialog";
+import { Button } from "@/components/ui/button";
+import { Label } from "@/components/ui/label";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+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[];
+ open: boolean;
+ setOpen: Dispatch<SetStateAction<boolean>>;
+ packageId: number;
+ formCode: string;
+ formId: number;
+ uploaderType: string;
+}
+
+export const FormDataReportTempUploadDialog: FC<
+ FormDataReportTempUploadDialogProps
+> = ({
+ columnsJSON,
+ open,
+ setOpen,
+ packageId,
+ formId,
+ formCode,
+ uploaderType,
+}) => {
+ const params = useParams();
+ const lng = (params?.lng as string) || "ko";
+ const { t } = useTranslation(lng, "engineering");
+
+ 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>{t("templateUpload.dialogTitle")}</DialogTitle>
+ <DialogDescription className="flex justify-around gap-[16px] ">
+ <FileActionsDropdown
+ filePath={"/vendorFormReportSample/sample_template_file.docx"}
+ fileName={"sample_template_file.docx"}
+ variant="ghost"
+ size="icon"
+ description={t("templateUpload.sampleFile")}
+ />
+ <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"
+ >
+ {t("templateUpload.uploadTab")}
+ </TabsTrigger>
+ <TabsTrigger
+ value="uploaded"
+ onClick={() => setTabValue("uploaded")}
+ className="flex-1"
+ >
+ {t("templateUpload.uploadedListTab")}
+ </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