import { LayoutDrawer, SkeletonSingle, WARNA } from "@/module/_global"; import { ActionIcon, Box, Flex, Grid, Group, Skeleton, Text, TextInput, } from "@mantine/core"; import React, { useEffect, useState } from "react"; import { HiOutlineOfficeBuilding } from "react-icons/hi"; import { HiMagnifyingGlass } from "react-icons/hi2"; import EditDrawerGroup from "./edit_drawer_group"; import toast from "react-hot-toast"; import { useShallowEffect } from "@mantine/hooks"; import { funGetAllGroup } from "../lib/api_group"; import { IDataGroup } from "../lib/type_group"; import { useSearchParams } from "next/navigation"; import _ from "lodash"; export default function ListGroupActive() { const [openDrawer, setOpenDrawer] = useState(false); const [valChoose, setValChoose] = useState(""); const [isData, setData] = useState([]); const [selectId, setSelectId] = useState(""); const [active, setActive] = useState(false); const [searchQuery, setSearchQuery] = useState('') const [loading, setLoading] = useState(true); const searchParams = useSearchParams() const status = searchParams.get('active') const fetchData = async () => { try { setData([]); setLoading(true); const response = await funGetAllGroup('?active=' + status + '&search=' + searchQuery) if (response.success) { setData(response?.data) } else { toast.error(response.message); } setLoading(false); } catch (error) { toast.error("Gagal mendapatkan grup, coba lagi nanti"); console.error(error); } finally { setLoading(false); } }; useShallowEffect(() => { fetchData(); }, [status, searchQuery]); return ( } placeholder="Pencarian" onChange={(e) => setSearchQuery(e.target.value)} /> {loading ? Array(6) .fill(null) .map((_, i) => ( )) : _.isEmpty(isData) ? Tidak ada grup : isData.map((v, i) => { return ( { setValChoose(v.name); setOpenDrawer(true); setSelectId(v.id); setActive(v.isActive); }} > {v.name} ); })} setOpenDrawer(false)} title={{valChoose}} > { if (val) { fetchData(); } setOpenDrawer(false); }} /> ); }