import { globalRole, LayoutDrawer, SkeletonSingle, TEMA, WARNA } from "@/module/_global"; import { ActionIcon, Box, Flex, Grid, Group, Text, TextInput } from "@mantine/core"; import React, { useState } from "react"; import { FaUserTie } from "react-icons/fa6"; import { HiMagnifyingGlass } from "react-icons/hi2"; import DrawerDetailPosition from "./drawer_detail_position"; import toast from "react-hot-toast"; import _ from "lodash"; import { useShallowEffect } from "@mantine/hooks"; import { useSearchParams } from "next/navigation"; import { funGetAllPosition } from "../lib/api_position"; import { IDataPosition } from "../lib/type_position"; import { useHookstate } from "@hookstate/core"; import { globalRefreshPosition } from "../lib/val_posisition"; export default function ListPositionActive() { const [openDrawer, setOpenDrawer] = useState(false); const [isData, setData] = useState(""); const [isDataPosition, setDataPosition] = useState([]); const [loading, setLoading] = useState(true); const [selectId, setSelectId] = useState(''); const [active, setActive] = useState(false) const [searchQuery, setSearchQuery] = useState('') const searchParams = useSearchParams() const group = searchParams.get('group') const status = searchParams.get('active') const refresh = useHookstate(globalRefreshPosition) const roleLogin = useHookstate(globalRole) const [nameGroup, setNameGroup] = useState('') const tema = useHookstate(TEMA) async function getAllPosition() { try { setLoading(true) const res = await funGetAllPosition('?active=' + status + '&group=' + group + '&search=' + searchQuery) setDataPosition(res.data); setNameGroup(res.filter.name) setLoading(false) } catch (error) { toast.error("Gagal mendapatkan position, coba lagi nanti"); console.error(error); } finally { setLoading(false); } } useShallowEffect(() => { getAllPosition(); }, [status, group, searchQuery, refresh.get()]) return ( } placeholder="Pencarian" onChange={(e) => setSearchQuery(e.target.value)} /> {loading ? Array(6).fill(null).map((_, i) => ( )) : {roleLogin.get() == 'supadmin' && Filter by: {nameGroup}} {isDataPosition.length == 0 ? Tidak ada jabatan : {isDataPosition.map((v, i) => { return ( { if (roleLogin.get() != 'user') { setData(v.name); setOpenDrawer(true); setSelectId(v.id); setActive(v.isActive); } }} > {v.name} {v.group} ); })} } } setOpenDrawer(false)} title={{isData}} > { setOpenDrawer(false); }} /> ); }