rev: calender

Deskripsi:
- check jika ada acara di tgl yg sama di beda divisi 1 grup

No Issues
This commit is contained in:
amel
2025-01-07 17:16:12 +08:00
parent 9e8bf1c73b
commit e4f631e397
3 changed files with 114 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ import { useState } from 'react';
import toast from 'react-hot-toast';
import { IoIosArrowDropright } from 'react-icons/io';
import { useWibuRealtime } from 'wibu-realtime';
import { funCreateCalender } from '../lib/api_calender';
import { funCheckCalender, funCreateCalender } from '../lib/api_calender';
import { IFormMemberCalender } from '../lib/type_calender';
import { globalCalender } from '../lib/val_calender';
import CreateUserCalender from './create_user_calender';
@@ -20,7 +20,9 @@ export default function CreateCalenderDivisionCaleder() {
const [value, setValue] = useState<Date | null>(null);
const router = useRouter()
const [isModal, setModal] = useState(false)
const [isModalKonfirmasiTglSama, setModalKonfirmasiTglSama] = useState(false)
const [loadingModal, setLoadingModal] = useState(false)
const [loadingModalKonfirmasiTglSama, setLoadingModalKonfirmasiTglSama] = useState(false)
const member = useHookstate(globalCalender)
const memberValue = member.get() as IFormMemberCalender[]
const [openMember, setOpenMember] = useState(false)
@@ -53,10 +55,40 @@ export default function CreateCalenderDivisionCaleder() {
project: "sdm"
})
async function onSubmit(val: boolean) {
async function onCheckDate() {
try {
setLoadingModal(true)
const response = await funCheckCalender({
idDivision: param.id,
title: isData.title,
dateStart: isData.dateStart,
timeStart: isData.timeStart,
timeEnd: isData.timeEnd,
linkMeet: isData.linkMeet,
repeatEventTyper: isData.repeatEventTyper,
desc: isData.desc,
repeatValue: isData.repeatValue,
member: memberValue
})
if (response.success) {
onSubmit()
} else {
setModalKonfirmasiTglSama(true)
}
} catch (error) {
console.error(error)
toast.error("Gagal menambahkan acara, coba lagi nanti");
} finally {
setLoadingModal(false)
}
}
async function onSubmit() {
try {
setLoadingModal(true)
setLoadingModalKonfirmasiTglSama(true)
const response = await funCreateCalender({
idDivision: param.id,
title: isData.title,
@@ -76,20 +108,20 @@ export default function CreateCalenderDivisionCaleder() {
division: param.id,
date: isData.dateStart
}])
setModal(false)
router.push(`/division/${param.id}/calender`)
toast.success(response.message)
member.set([])
} else {
toast.error(response.message)
setModal(false)
}
} catch (error) {
console.error(error)
toast.error("Gagal menambahkan pengumuman, coba lagi nanti");
toast.error("Gagal menambahkan acara, coba lagi nanti");
} finally {
setModal(false)
setModalKonfirmasiTglSama(false)
setLoadingModal(false)
setLoadingModalKonfirmasiTglSama(false)
}
}
@@ -381,8 +413,7 @@ export default function CreateCalenderDivisionCaleder() {
member.get().map((v: any, i: any) => {
return (
<Box key={i}>
<Grid align='center' mt={10}
>
<Grid align='center' mt={10} >
<Grid.Col span={1}>
<Avatar src={`https://wibu-storage.wibudev.com/api/files/${v.img}`} alt="it's me" size={'lg'} />
</Grid.Col>
@@ -430,11 +461,27 @@ export default function CreateCalenderDivisionCaleder() {
description="Apakah Anda yakin ingin menambahkan data?"
onYes={(val) => {
if (val) {
onSubmit(val)
onCheckDate()
} else {
setModal(false)
}
}} />
<LayoutModal loading={loadingModalKonfirmasiTglSama} opened={isModalKonfirmasiTglSama}
onClose={() => {
setModalKonfirmasiTglSama(false)
setModal(false)
}}
description="Sudah ada acara pada tanggal yang sama. Apakah Anda yakin ingin menambahkan data?"
onYes={(val) => {
if (val) {
onSubmit()
} else {
setModalKonfirmasiTglSama(false)
setModal(false)
}
}} />
</Box>
);
}