"use client" import { LayoutIconBack, LayoutNavbarHome, SkeletonDetailProfile, TEMA, WARNA } from "@/module/_global"; import { ActionIcon, Avatar, Box, Grid, Group, Skeleton, Stack, Text } from "@mantine/core"; import { RiIdCardFill } from "react-icons/ri"; import { FaSquarePhone } from "react-icons/fa6"; import { MdEmail } from "react-icons/md"; import { IoMaleFemale } from "react-icons/io5"; import toast from "react-hot-toast"; import { LuLogOut } from "react-icons/lu"; import LayoutModal from "@/module/_global/layout/layout_modal"; import { useState } from "react"; import { funGetProfileByCookies } from "../lib/api_profile"; import { useShallowEffect } from "@mantine/hooks"; import { IProfileById } from "../lib/type_profile"; import { useRouter } from "next/navigation"; import { useHookstate } from "@hookstate/core"; export default function Profile() { const [openModal, setOpenModal] = useState(false); const [isData, setData] = useState() const router = useRouter() const [loading, setLoading] = useState(true) const [img, setIMG] = useState() const tema = useHookstate(TEMA) async function getData() { try { setLoading(true) const res = await funGetProfileByCookies() setData(res.data) setIMG(`https://wibu-storage.wibudev.com/api/files/${res.data.img}`) setLoading(false) } catch (error) { console.error(error); } finally { setLoading(false) } } useShallowEffect(() => { getData() }, []) async function onLogout(val: boolean) { try { if (val) { await fetch('/api/auth/logout', { method: 'DELETE', }); toast.success('Logout Sukses') window.location.href = '/'; } setOpenModal(false) } catch (error) { console.error(error); } } return ( <> { setOpenModal(true) }} variant="light" bg={tema.get().bgIcon} size="lg" radius="lg" aria-label="Info"> {loading ? : <> {isData?.name} {isData?.group} - {isData?.position} } {loading ? : Informasi router.push(`/profile/edit/`)}>Edit NIK {isData?.nik} No Telpon +62{isData?.phone} Email {isData?.email} Jenis Kelamin {isData?.gender === 'M' ? 'Laki-laki' : isData?.gender === 'F' ? 'Perempuan' : ''} } setOpenModal(false)} description="Apakah Anda yakin ingin keluar?" onYes={(val) => onLogout(val)} /> ) }