From 326d4708397029ddb57a48221b01b76b4bd17586 Mon Sep 17 00:00:00 2001 From: amel Date: Thu, 26 Dec 2024 11:36:16 +0800 Subject: [PATCH] upd: divisi Deskripsi: - membuat list divisi berdasarkan kategori semua data dan data saya NoIssues --- src/app/api/division/route.ts | 30 +++--- src/module/division_new/ui/list_division.tsx | 5 +- .../division_new/ui/tab_list_division.tsx | 91 +++++++++++++------ 3 files changed, 83 insertions(+), 43 deletions(-) diff --git a/src/app/api/division/route.ts b/src/app/api/division/route.ts index 855b32e..9e4e5d6 100644 --- a/src/app/api/division/route.ts +++ b/src/app/api/division/route.ts @@ -18,6 +18,7 @@ export async function GET(request: Request) { const roleUser = user.idUserRole const { searchParams } = new URL(request.url); const idGroup = searchParams.get("group"); + const kategori = searchParams.get("cat"); const name = searchParams.get('search'); const page = searchParams.get('page'); const active = searchParams.get("active"); @@ -30,6 +31,7 @@ export async function GET(request: Request) { } + // JIKA (ROLE BUKAN USER DAN COADMIN) ATAU SEMUA ROLE DG KATEGORI == SEMUA let kondisi: any = { isActive: active == 'false' ? false : true, idVillage: String(villaId), @@ -40,19 +42,23 @@ export async function GET(request: Request) { } } + + // JIKA ROLE = USER ATAU COADMIN DAN KATEGORI = MINE (DIVISI SAYA) if (roleUser != "supadmin" && roleUser != "cosupadmin" && roleUser != "admin") { - kondisi = { - isActive: active == 'false' ? false : true, - idVillage: String(villaId), - idGroup: grup, - name: { - contains: (name == undefined || name == "null") ? "" : name, - mode: "insensitive" - }, - DivisionMember: { - some: { - isActive: true, - idUser: String(user.id) + if (kategori != "semua") { + kondisi = { + isActive: active == 'false' ? false : true, + idVillage: String(villaId), + idGroup: grup, + name: { + contains: (name == undefined || name == "null") ? "" : name, + mode: "insensitive" + }, + DivisionMember: { + some: { + isActive: true, + idUser: String(user.id) + } } } } diff --git a/src/module/division_new/ui/list_division.tsx b/src/module/division_new/ui/list_division.tsx index ca7882b..67001df 100644 --- a/src/module/division_new/ui/list_division.tsx +++ b/src/module/division_new/ui/list_division.tsx @@ -30,6 +30,7 @@ export default function ListDivision() { const [isRefresh, setRefresh] = useState(false) const notifLoadPage = useHookstate(globalNotifPage) const status = searchParams.get('active') + const kategori = searchParams.get('cat') const handleList = () => { @@ -43,7 +44,7 @@ export default function ListDivision() { if (isPage == 1) { setData([]) } - const response = await funGetAllDivision('?active=' + status + '&search=' + searchQuery + '&group=' + group + '&page=' + isPage) + const response = await funGetAllDivision('?active=' + status + '&search=' + searchQuery + '&group=' + group + '&page=' + isPage + '&cat=' + kategori); if (response.success) { setJumlah(response.total) setNameGroup(response.filter.name) @@ -72,7 +73,7 @@ export default function ListDivision() { useShallowEffect(() => { setPage(1) fetchData(true) - }, [status, searchQuery]) + }, [status, searchQuery, kategori]) diff --git a/src/module/division_new/ui/tab_list_division.tsx b/src/module/division_new/ui/tab_list_division.tsx index 0f7ce8d..656a7a7 100644 --- a/src/module/division_new/ui/tab_list_division.tsx +++ b/src/module/division_new/ui/tab_list_division.tsx @@ -4,7 +4,7 @@ import { useHookstate } from "@hookstate/core"; import { Box, rem, Tabs } from "@mantine/core"; import { useRouter, useSearchParams } from "next/navigation"; import { IoMdCheckmarkCircleOutline } from "react-icons/io"; -import { IoCloseCircleOutline } from "react-icons/io5"; +import { IoCloseCircleOutline, IoFileTrayOutline, IoFileTrayStackedOutline } from "react-icons/io5"; import ListDivision from "./list_division"; export default function TabListDivision() { @@ -13,6 +13,7 @@ export default function TabListDivision() { const searchParams = useSearchParams(); const status = searchParams.get("active"); const group = searchParams.get("group"); + const kategori = searchParams.get("cat"); const tema = useHookstate(TEMA) const roleLogin = useHookstate(globalRole) @@ -22,40 +23,72 @@ export default function TabListDivision() { variant="pills" color={tema.get().bgFiturHome} radius="xl" - defaultValue={status == "false" ? "false" : "true"} + defaultValue={status == "false" || kategori == "semua" ? "false" : "true"} > { - roleLogin.get() != '' ? - (roleLogin.get() != "user" && roleLogin.get() != "coadmin") && - - } - onClick={() => { - router.push("/division?active=true&group=" + group); + roleLogin.get() != '' + ? + (roleLogin.get() != "user" && roleLogin.get() != "coadmin") + ? + - Aktif - - } - onClick={() => { - router.push("/division?active=false&group=" + group); + } + onClick={() => { + router.push("/division?active=true&group=" + group); + }} + > + Aktif + + } + onClick={() => { + router.push("/division?active=false&group=" + group); + }} + > + Tidak Aktif + + + : + - Tidak Aktif - - + } + onClick={() => { + router.push("/division"); + }} + > + Divisi Saya + + } + onClick={() => { + router.push("/division?cat=semua"); + }} + > + Semua Divisi + + : <> }