From 10694547d1654f9473b51f2f7e01843b23883b2d Mon Sep 17 00:00:00 2001 From: Sabda Yagra Date: Thu, 22 Jan 2026 14:24:33 +0700 Subject: [PATCH] fix: table task mabes=>koorkurator --- .../task-ta/components/task-ta-table.tsx | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx b/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx index 590eba20..93a51de3 100644 --- a/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx +++ b/app/[locale]/(protected)/contributor/task-ta/components/task-ta-table.tsx @@ -68,7 +68,7 @@ export default function TaskTaTable() { const [totalData, setTotalData] = React.useState(1); const [sorting, setSorting] = React.useState([]); const [columnFilters, setColumnFilters] = React.useState( - [] + [], ); const [columnVisibility, setColumnVisibility] = React.useState({}); @@ -81,7 +81,7 @@ export default function TaskTaTable() { }); const [activeTab, setActiveTab] = React.useState( - isMabesApprover ? "mabes-koor" : "ta" + isMabesApprover ? "mabes-koor" : "ta", ); const [statusFilter, setStatusFilter] = React.useState([]); const [dateFilter, setDateFilter] = React.useState(""); @@ -91,6 +91,8 @@ export default function TaskTaTable() { const [page, setPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1); + const KOOR_KURATOR_USER_ID = "464"; + // ✅ columns based on tab const columns = useTableColumns(activeTab); @@ -133,6 +135,8 @@ export default function TaskTaTable() { activeTab, ]); + const isKoorKurator = String(userId) === KOOR_KURATOR_USER_ID; + async function fetchData() { const formattedStartDate = dateFilter ? format(new Date(dateFilter), "yyyy-MM-dd") @@ -149,7 +153,7 @@ export default function TaskTaTable() { filterByCode, formattedStartDate, "atensi-khusus", - statusFilter + statusFilter, ); } @@ -161,7 +165,7 @@ export default function TaskTaTable() { filterByCode, formattedStartDate, "tugas-harian", - statusFilter + statusFilter, ); } @@ -173,21 +177,20 @@ export default function TaskTaTable() { filterByCode, formattedStartDate, "atensi-khusus", - statusFilter + statusFilter, ); } // ✅ TAB BARU: khusus Mabes Approver if (activeTab === "mabes-koor") { - // kalau bukan Mabes Approver, jangan fetch - if (!isMabesApprover) { + // hanya blok kalau BUKAN Mabes Approver DAN BUKAN Koor Kurator + if (!isMabesApprover && !isKoorKurator) { setDataTable([]); setTotalData(0); setTotalPage(0); return; } - // NOTE: backend endpoint harus return tasks mabes -> koorkurator res = await listTaskTa( page - 1, search, @@ -195,12 +198,20 @@ export default function TaskTaTable() { filterByCode, formattedStartDate, "atensi-khusus", - statusFilter + statusFilter, ); } let contentData = res?.data?.data?.content || []; + // 🚫 TAB TA: SEMBUNYIKAN TASK MABES → KOOR + if (activeTab === "ta") { + contentData = contentData.filter((item: any) => { + const assignedUsers = String(item?.assignedToUsers || ""); + return !assignedUsers.split(",").includes(KOOR_KURATOR_USER_ID); + }); + } + // ⛔ blok task baru kalau upload belum selesai (fitur kamu) const isUploadingTA = localStorage.getItem("TA_UPLOAD_IN_PROGRESS") === "true"; @@ -235,13 +246,14 @@ export default function TaskTaTable() { // } if (activeTab === "mabes-koor") { contentData = contentData.filter((item: any) => { - const createdByLevel = item?.createdBy?.userLevel?.name || ""; + const createdByLevel = + item?.createdBy?.userLevel?.name || item?.createdByLevelName || ""; const assignedUsers = String(item?.assignedToUsers || ""); return ( /MABES/i.test(createdByLevel) && - assignedUsers.split(",").includes("464") + assignedUsers.split(",").includes(KOOR_KURATOR_USER_ID) ); }); } @@ -270,7 +282,7 @@ export default function TaskTaTable() { function handleStatusCheckboxChange(value: number) { setStatusFilter((prev) => - prev.includes(value) ? prev.filter((s) => s !== value) : [...prev, value] + prev.includes(value) ? prev.filter((s) => s !== value) : [...prev, value], ); } @@ -463,7 +475,7 @@ export default function TaskTaTable() { ? null : flexRender( header.column.columnDef.header, - header.getContext() + header.getContext(), )} ))}