diff --git a/src/app_modules/component_global/loading_card.tsx b/src/app_modules/component_global/loading_card.tsx
new file mode 100644
index 00000000..ff43d946
--- /dev/null
+++ b/src/app_modules/component_global/loading_card.tsx
@@ -0,0 +1,25 @@
+"use client";
+
+import { Overlay, Center, Loader } from "@mantine/core";
+
+export default function ComponentGlobal_CardLoadingOverlay({
+ size,
+ variant,
+}: {
+ size?: number;
+ variant?: any;
+}) {
+ return (
+ <>
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/app_modules/job/component/card_view_status.tsx b/src/app_modules/job/component/card_view_status.tsx
index 428062fc..26df44e1 100644
--- a/src/app_modules/job/component/card_view_status.tsx
+++ b/src/app_modules/job/component/card_view_status.tsx
@@ -8,6 +8,8 @@ import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/component_gl
import { MODEL_JOB } from "../model/interface";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { IconChevronRight } from "@tabler/icons-react";
+import { useState } from "react";
+import ComponentGlobal_CardLoadingOverlay from "@/app_modules/component_global/loading_card";
export default function ComponentJob_CardViewStatus({
listData,
@@ -17,6 +19,9 @@ export default function ComponentJob_CardViewStatus({
path?: any;
}) {
const router = useRouter();
+ const [jobId, setJobId] = useState("");
+ const [visible, setVisible] = useState(false);
+
if (_.isEmpty(listData))
return (
<>
@@ -40,7 +45,11 @@ export default function ComponentJob_CardViewStatus({
"Path tidak ditemukan"
);
} else {
- router.push(path + e.id);
+ visible
+ ? ""
+ : (setJobId(e?.id),
+ setVisible(true),
+ router.push(path + e?.id));
}
}}
>
@@ -49,12 +58,17 @@ export default function ComponentJob_CardViewStatus({
- {e.title}
+ {e?.title}
+ {visible && e?.id === jobId ? (
+
+ ) : (
+ ""
+ )}
))}
diff --git a/src/app_modules/job/detail/arsip/view.tsx b/src/app_modules/job/detail/arsip/view.tsx
index 788342d3..b62c39b1 100644
--- a/src/app_modules/job/detail/arsip/view.tsx
+++ b/src/app_modules/job/detail/arsip/view.tsx
@@ -10,6 +10,7 @@ import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/
import { useAtom } from "jotai";
import { Job_funEditArsipById } from "../../fun/edit/fun_edit_arsip_by_id";
import { gs_job_status, gs_job_hot_menu } from "../../global_state";
+import { useState } from "react";
export default function Job_DetailArsip({ dataJob }: { dataJob: MODEL_JOB }) {
return (
@@ -24,6 +25,7 @@ export default function Job_DetailArsip({ dataJob }: { dataJob: MODEL_JOB }) {
function ButtonAction({ jobId }: { jobId: string }) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
const [status, setStatus] = useAtom(gs_job_status);
const [hotMenu, setHotMenu] = useAtom(gs_job_hot_menu);
@@ -33,6 +35,7 @@ function ButtonAction({ jobId }: { jobId: string }) {
setStatus("Publish");
setHotMenu(1);
ComponentGlobal_NotifikasiBerhasil("Berhasil Diarsipkan");
+ setLoading(true);
router.replace(RouterJob.beranda);
} else {
ComponentGlobal_NotifikasiGagal(res.message);
@@ -42,6 +45,8 @@ function ButtonAction({ jobId }: { jobId: string }) {
return (
<>