'use client' import { globalRole, LayoutDrawer, LayoutIconBack, LayoutNavbarHome, SkeletonDetailProfile, TEMA } from "@/module/_global"; import { useHookstate } from "@hookstate/core"; import { ActionIcon, Avatar, Box, Center, Grid, Group, Skeleton, Stack, Text } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; import { useState } from "react"; import toast from "react-hot-toast"; import { FaBuildingUser, FaSquarePhone } from "react-icons/fa6"; import { HiMenu } from "react-icons/hi"; import { IoMaleFemale } from "react-icons/io5"; import { MdEmail } from "react-icons/md"; import { RiIdCardFill } from "react-icons/ri"; import { valueRoleUser } from "../../lib/val_user"; import { funGetOneMember } from "../lib/api_member"; import { IListMember, IMember } from "../lib/type_member"; import DrawerDetailMember from "./drawer_detail_member"; import { BiSolidUserBadge } from "react-icons/bi"; import { PiGenderIntersexFill } from "react-icons/pi"; export default function NavbarDetailMember({ id }: IMember) { const [isOpen, setOpen] = useState(false) const [dataOne, setDataOne] = useState() const [selectId, setSelectId] = useState(''); const [active, setActive] = useState(false) const [loading, setLoading] = useState(true) const [isEdit, setEdit] = useState(false) const roleLogin = useHookstate(globalRole) const tema = useHookstate(TEMA) useShallowEffect(() => { featchGetOne() }, []) async function featchGetOne() { try { setLoading(true) const respose = await funGetOneMember(id) if (respose.success) { setDataOne(respose.data) setActive(respose.data?.isActive) setSelectId(respose.data?.id) setEdit(valueRoleUser.filter((v) => v.login == roleLogin.get())[0]?.data.some((i: any) => i.id == respose.data.idUserRole)) } else { toast.error(respose.message) } setLoading(false) } catch (error) { console.error(error) toast.error("Gagal mendapatkan detail anggota, coba lagi nanti"); } finally { setLoading(false) } } return ( { (roleLogin.get() != "user") && isEdit && setOpen(true)} variant="light" bg={tema.get().bgIcon} size="lg" radius="lg" aria-label="Info"> }
{loading ? : }
{loading ? <> : <> {dataOne?.name} {dataOne?.role} }
{loading ? : Informasi NIK {dataOne?.nik} Lembaga Desa {dataOne?.group} Jabatan {dataOne?.position} No Telepon +62{dataOne?.phone} Email {dataOne?.email} Jenis Kelamin {dataOne?.gender === 'M' ? 'Laki-laki' : dataOne?.gender === 'F' ? 'Perempuan' : ''} } setOpen(false)}> setOpen(false)} />
) }