import { LayoutDrawer, SkeletonSingle, WARNA } from "@/module/_global"; import { ActionIcon, Box, Group, Text, TextInput } from "@mantine/core"; import React, { useEffect, 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"; 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') async function getAllPosition() { try { setDataPosition([]); setLoading(true) const res = await funGetAllPosition('?active=' + status + '&group=' + group + '&search=' + searchQuery) setDataPosition(res.data); setLoading(false); } catch (error) { toast.error("Gagal mendapatkan position, coba lagi nanti"); console.error(error); } finally { setLoading(false); } } useShallowEffect(() => { getAllPosition(); }, [status, group, searchQuery]) return ( } placeholder="Pencarian" onChange={(e) => setSearchQuery(e.target.value)} /> {loading ? Array(6).fill(null).map((_, i) => ( )) : isDataPosition.map((v, i) => { return ( { setData(v.name); setOpenDrawer(true); setSelectId(v.id); setActive(v.isActive); }} > {v.name} {v.group} ); }) } setOpenDrawer(false)} title={isData} > { setOpenDrawer(false); }} /> ); }