This commit is contained in:
Sabda Yagra 2026-01-22 14:28:34 +07:00
commit 2b8f7b724e
1 changed files with 25 additions and 13 deletions

View File

@ -68,7 +68,7 @@ export default function TaskTaTable() {
const [totalData, setTotalData] = React.useState<number>(1); const [totalData, setTotalData] = React.useState<number>(1);
const [sorting, setSorting] = React.useState<SortingState>([]); const [sorting, setSorting] = React.useState<SortingState>([]);
const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>( const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
[] [],
); );
const [columnVisibility, setColumnVisibility] = const [columnVisibility, setColumnVisibility] =
React.useState<VisibilityState>({}); React.useState<VisibilityState>({});
@ -81,7 +81,7 @@ export default function TaskTaTable() {
}); });
const [activeTab, setActiveTab] = React.useState<ActiveTab>( const [activeTab, setActiveTab] = React.useState<ActiveTab>(
isMabesApprover ? "mabes-koor" : "ta" isMabesApprover ? "mabes-koor" : "ta",
); );
const [statusFilter, setStatusFilter] = React.useState<number[]>([]); const [statusFilter, setStatusFilter] = React.useState<number[]>([]);
const [dateFilter, setDateFilter] = React.useState(""); const [dateFilter, setDateFilter] = React.useState("");
@ -91,6 +91,8 @@ export default function TaskTaTable() {
const [page, setPage] = React.useState(1); const [page, setPage] = React.useState(1);
const [totalPage, setTotalPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1);
const KOOR_KURATOR_USER_ID = "464";
// ✅ columns based on tab // ✅ columns based on tab
const columns = useTableColumns(activeTab); const columns = useTableColumns(activeTab);
@ -133,6 +135,8 @@ export default function TaskTaTable() {
activeTab, activeTab,
]); ]);
const isKoorKurator = String(userId) === KOOR_KURATOR_USER_ID;
async function fetchData() { async function fetchData() {
const formattedStartDate = dateFilter const formattedStartDate = dateFilter
? format(new Date(dateFilter), "yyyy-MM-dd") ? format(new Date(dateFilter), "yyyy-MM-dd")
@ -149,7 +153,7 @@ export default function TaskTaTable() {
filterByCode, filterByCode,
formattedStartDate, formattedStartDate,
"atensi-khusus", "atensi-khusus",
statusFilter statusFilter,
); );
} }
@ -161,7 +165,7 @@ export default function TaskTaTable() {
filterByCode, filterByCode,
formattedStartDate, formattedStartDate,
"tugas-harian", "tugas-harian",
statusFilter statusFilter,
); );
} }
@ -173,21 +177,20 @@ export default function TaskTaTable() {
filterByCode, filterByCode,
formattedStartDate, formattedStartDate,
"atensi-khusus", "atensi-khusus",
statusFilter statusFilter,
); );
} }
// ✅ TAB BARU: khusus Mabes Approver // ✅ TAB BARU: khusus Mabes Approver
if (activeTab === "mabes-koor") { if (activeTab === "mabes-koor") {
// kalau bukan Mabes Approver, jangan fetch // hanya blok kalau BUKAN Mabes Approver DAN BUKAN Koor Kurator
if (!isMabesApprover) { if (!isMabesApprover && !isKoorKurator) {
setDataTable([]); setDataTable([]);
setTotalData(0); setTotalData(0);
setTotalPage(0); setTotalPage(0);
return; return;
} }
// NOTE: backend endpoint harus return tasks mabes -> koorkurator
res = await listTaskTa( res = await listTaskTa(
page - 1, page - 1,
search, search,
@ -195,12 +198,20 @@ export default function TaskTaTable() {
filterByCode, filterByCode,
formattedStartDate, formattedStartDate,
"atensi-khusus", "atensi-khusus",
statusFilter statusFilter,
); );
} }
let contentData = res?.data?.data?.content || []; 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) // ⛔ blok task baru kalau upload belum selesai (fitur kamu)
const isUploadingTA = const isUploadingTA =
localStorage.getItem("TA_UPLOAD_IN_PROGRESS") === "true"; localStorage.getItem("TA_UPLOAD_IN_PROGRESS") === "true";
@ -235,13 +246,14 @@ export default function TaskTaTable() {
// } // }
if (activeTab === "mabes-koor") { if (activeTab === "mabes-koor") {
contentData = contentData.filter((item: any) => { contentData = contentData.filter((item: any) => {
const createdByLevel = item?.createdBy?.userLevel?.name || ""; const createdByLevel =
item?.createdBy?.userLevel?.name || item?.createdByLevelName || "";
const assignedUsers = String(item?.assignedToUsers || ""); const assignedUsers = String(item?.assignedToUsers || "");
return ( return (
/MABES/i.test(createdByLevel) && /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) { function handleStatusCheckboxChange(value: number) {
setStatusFilter((prev) => 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 ? null
: flexRender( : flexRender(
header.column.columnDef.header, header.column.columnDef.header,
header.getContext() header.getContext(),
)} )}
</TableHead> </TableHead>
))} ))}