'use client' import { LayoutDrawer, LayoutNavbarNew, SkeletonSingle, WARNA } from '@/module/_global'; import { ActionIcon, Avatar, Box, CopyButton, Divider, Flex, Grid, Group, SimpleGrid, Skeleton, Spoiler, Stack, Text, Tooltip } from '@mantine/core'; import React, { useState } from 'react'; import { BsCalendar2Event, BsCalendarDate } from 'react-icons/bs'; import { MdEventNote, MdOutlineFormatListBulleted } from "react-icons/md"; import { LuClock, LuCopy, LuLink } from "react-icons/lu"; import { FaCheck, FaUser } from 'react-icons/fa6'; import { TbCopy } from 'react-icons/tb'; import { HiMenu } from 'react-icons/hi'; import DrawerDetailEvent from './drawer_detail_event'; import { useParams, useRouter } from 'next/navigation'; import { funGetOneCalender } from '../lib/api_calender'; import { useShallowEffect } from '@mantine/hooks'; import moment from "moment"; import "moment/locale/id"; import { IDataDetailByIdCalender, IDataDetailByIdMember } from '../lib/type_calender'; import SkeletonDetailEvent from './skeleton_detail_event'; import { IoIosCloseCircle } from 'react-icons/io'; import LayoutModal from '@/module/_global/layout/layout_modal'; export default function DetailEventDivision() { const param = useParams<{ id: string, detail: string }>() const [isDataCalender, setDataCalender] = useState() const [isDataAnggota, setDataAnggota] = useState([]) const [isLengthMember, setLengthMember] = useState() const [loading, setLoading] = useState(true) const [openDrawer, setOpenDrawer] = useState(false) const [openDrawerUser, setOpenDrawerUser] = useState(false) const [isOpenModal, setOpenModal] = useState(false) const router = useRouter() const getData = async () => { try { setLoading(true) const response = await funGetOneCalender(param.detail) setDataCalender(response.data.calender) setDataAnggota(response.data.member) setLengthMember(response.data.total) setLoading(false) } catch (error) { console.error(error) } finally { setLoading(false) } } useShallowEffect(() => { getData() }, []) return ( setOpenDrawer(true)} bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings"> } /> {loading ? : {isDataCalender?.title} {moment(isDataCalender?.dateStart).format('LL')} {isDataCalender?.timeStart} | {isDataCalender?.timeEnd} {isDataCalender?.repeatEventTyper.toString() === '1' ? 'Acara 1 Kali' : isDataCalender?.repeatEventTyper.toString() === '2' ? 'Hari Kerja (senin - jumat)' : isDataCalender?.repeatEventTyper.toString() === '3' ? 'Minggu' : isDataCalender?.repeatEventTyper.toString() === '4' ? 'Bulanan' : isDataCalender?.repeatEventTyper.toString() === '5' ? 'Tahunan' : ''} {isDataCalender?.linkMeet ? ( {isDataCalender?.linkMeet} {({ copied, copy }) => ( {copied ? ( ) : ( )} )} ) : ( - ) } {isDataCalender?.desc ? ( {isDataCalender?.desc} ) : ( - ) } } { loading ? {Array(4) .fill(null) .map((_, i) => ( ))} : Total Anggota {isLengthMember} Anggota { isLengthMember == 0 ? ( Tidak ada anggota ) : { isDataAnggota.map((v, i) => { return ( setOpenDrawerUser(true)} key={i}> {v.name} {v.email} ) }) } } } Menu} onClose={() => setOpenDrawerUser(false)}> { router.push('/member/' + ) }} justify={'center'} align={'center'} direction={'column'} > Lihat profil { setOpenModal(true) }} justify={'center'} align={'center'} direction={'column'} > Keluarkan anggota setOpenModal(false)} description="Apakah Anda yakin ingin mengeluarkan anggota?" onYes={(val) => { if (val) { // onSubmit() } setOpenModal(false) }} /> setOpenDrawer(false)}> ); }