import { WARNA } from '@/module/_global'; import { Box, Divider, Group, Indicator, Skeleton, Text } from '@mantine/core'; import { DatePicker, DatePickerProps } from '@mantine/dates'; import { useParams, useRouter } from 'next/navigation'; import React, { useState } from 'react'; import { funGetAllCalender, funGetIndicatorCalender } from '../lib/api_calender'; import { useSetState, useShallowEffect } from '@mantine/hooks'; import { IDataCalender } from '../lib/type_calender'; import moment from 'moment'; import _ from 'lodash'; import toast from 'react-hot-toast'; import 'dayjs/locale/id' import { PiCalendarStarThin } from 'react-icons/pi'; export default function DateEventDivision() { const [isData, setData] = useState([]) const [isListTgl, setListTgl] = useState([]) const router = useRouter() const param = useParams<{ id: string, detail: string }>() const [isDate, setDate] = useSetState(moment().format('YYYY-MM-DD')) const [isMonth, setMonth] = useState(moment().month() + 1) const [loading, setLoading] = useState(true) const getData = async (tgl: any) => { try { setLoading(true) const response = await funGetAllCalender('?division=' + param.id + '&date=' + tgl) if (response.success) { setData(response.data) } else { toast.error(response.message) } setLoading(false) } catch (error) { console.log(error) toast.error("Gagal mendapatkan list acara") } finally { setLoading(false) } } const getIndicator = async (tgl: any) => { try { const response = await funGetIndicatorCalender('?division=' + param.id + '&date=' + tgl) if (response.success) { setListTgl(response.data) } else { setListTgl([]) toast.error(response.message) } } catch (error) { console.log(error) toast.error("Gagal mendapatkan list acara") } } async function changeMonth(value: any) { const monthKlik = moment(value).format('MM') if (monthKlik != isMonth) { setMonth(monthKlik) getIndicator(value) } } function change(val: Date) { const a: any = moment(new Date(val)).format('YYYY-MM-DD') setDate(a) getData(a) } useShallowEffect(() => { getData(isDate) getIndicator(isDate) }, []) const dayRenderer: DatePickerProps['renderDay'] = (date) => { const coba = moment(date).format('YYYY-MM-DD') const day = date.getDate() const muncul = isListTgl.includes(coba) return (
{day}
); }; return ( { change(val) }} onDateChange={(val) => { changeMonth(val) }} locale='id' /> Event {loading ? Array(6) .fill(null) .map((_, i) => ( )) : _.isEmpty(isData) ? Tidak ada event : isData.map((event, index) => { const bgColor = ['#D8D8F1', '#FED6C5'][index % 2] const colorDivider = ['#535FCA', '#A7A7A7'][index % 2] return ( router.push(`/division/${param.id}/calender/${event.id}`)} bg={bgColor} pl={15} p={10} style={{ borderRadius: 10 }} h={113}> {event.timeStart} - {event.timeEnd} {event.title} Dibuat oleh : {event.user_name} ) }) } ); }