diff --git a/src/app/api/timesheets/actions.ts b/src/app/api/timesheets/actions.ts index a4d11d9..57acb12 100644 --- a/src/app/api/timesheets/actions.ts +++ b/src/app/api/timesheets/actions.ts @@ -158,3 +158,27 @@ export const importTimesheets = async (data: FormData) => { return importTimesheets; }; + +export const importLeaves = async (data: FormData) => { + const importLeaves = await serverFetchString( + `${BASE_API_URL}/timesheets/import-leave`, + { + method: "POST", + body: data, + }, + ); + + return importLeaves; +}; + +export const rearrangeTimesheets = async () => { + const importLeaves = await serverFetchString( + `${BASE_API_URL}/timesheets/rearrange`, + { + method: "POST", + // body: data, + }, + ); + + return importLeaves; +}; \ No newline at end of file diff --git a/src/components/ExcelFileImport/ExcelFileImport.tsx b/src/components/ExcelFileImport/ExcelFileImport.tsx index e61473c..d553dbb 100644 --- a/src/components/ExcelFileImport/ExcelFileImport.tsx +++ b/src/components/ExcelFileImport/ExcelFileImport.tsx @@ -5,8 +5,8 @@ import { FileUpload } from "@mui/icons-material"; import { Button, Grid, Stack } from "@mui/material"; import React, { ChangeEvent, useCallback } from "react"; import { useTranslation } from "react-i18next"; -import { errorDialogWithContent, successDialog, successDialogWithContent } from "../Swal/CustomAlerts"; -import { importTimesheets } from "@/app/api/timesheets/actions"; +import { errorDialogWithContent, submitDialog, successDialog, successDialogWithContent } from "../Swal/CustomAlerts"; +import { importLeaves, importTimesheets, rearrangeTimesheets } from "@/app/api/timesheets/actions"; interface Props { } @@ -34,9 +34,12 @@ const ExcelFileImport: React.FC = async ({ }) => { case "importTimesheet": response = await importTimesheets(formData) break; + case "importLeave": + response = await importLeaves(formData) + break; } - if (response === "Import Excel success") { + if (response.includes("Import Excel success")) { successDialogWithContent(t("Import Success"), t(`${response}`), t) } else { errorDialogWithContent(t("Import Fail"), t(`${response}`), t) @@ -52,6 +55,37 @@ const ExcelFileImport: React.FC = async ({ }) => { return }, []) + const handleButtonClick = useCallback(async (event: React.MouseEvent) => { + try { + + const targetId = event.currentTarget.id + submitDialog(async () => { + let response: String = "" + + switch (targetId) { + case "rearrangeTimesheet": + response = await rearrangeTimesheets() + break; + } + + if (response.includes("Rearrange success")) { + successDialogWithContent(t("Rearrange Success"), t(`${response}`), t) + } else { + errorDialogWithContent(t("Rearrange Fail"), t(`${response}`), t) + } + }, t, + { + title: "Do you want to rearrange?", + confirmButtonText: "Rearrange" + }) + + } catch (err) { + console.log(err) + return false + } + + }, []) + return ( <> @@ -93,6 +127,37 @@ const ExcelFileImport: React.FC = async ({ }) => { {t("Import Timesheet")} + + + + + + );