diff --git a/src/app/api/calender/route.ts b/src/app/api/calender/route.ts index 302f9a5..adb0dd2 100644 --- a/src/app/api/calender/route.ts +++ b/src/app/api/calender/route.ts @@ -49,14 +49,17 @@ export async function GET(request: Request) { name: true } } + }, + orderBy: { + createdAt: 'desc' } }); const allOmit = data.map((v: any) => ({ ..._.omit(v, ["User"]), user_name: v.User.name, - timeStart: moment(v.timeStart).format('LT'), - timeEnd: moment(v.timeEnd).format('LT') + timeStart: moment.utc(v.timeStart).format('HH:mm'), + timeEnd: moment.utc(v.timeEnd).format('HH:mm') })) diff --git a/src/module/calender/lib/type_calender.ts b/src/module/calender/lib/type_calender.ts index 3ae044a..89129d3 100644 --- a/src/module/calender/lib/type_calender.ts +++ b/src/module/calender/lib/type_calender.ts @@ -47,4 +47,8 @@ export interface IFormMemberCalender { id: string name: string }[] +} + +export interface IFormUlangiEvent { + id: string } \ No newline at end of file diff --git a/src/module/calender/lib/val_calender.ts b/src/module/calender/lib/val_calender.ts index e43de78..68605d0 100644 --- a/src/module/calender/lib/val_calender.ts +++ b/src/module/calender/lib/val_calender.ts @@ -1,5 +1,6 @@ import { hookstate } from "@hookstate/core"; -import { IFormMemberCalender } from "./type_calender"; +import { IFormMemberCalender, IFormUlangiEvent } from "./type_calender"; -export const globalCalender = hookstate([]) \ No newline at end of file +export const globalCalender = hookstate([]) +export const globalUlangiEvent = hookstate('') \ No newline at end of file diff --git a/src/module/calender/ui/detail_event_division.tsx b/src/module/calender/ui/detail_event_division.tsx index 0eae071..7a99999 100644 --- a/src/module/calender/ui/detail_event_division.tsx +++ b/src/module/calender/ui/detail_event_division.tsx @@ -15,38 +15,6 @@ import { useShallowEffect } from '@mantine/hooks'; import moment from "moment"; import "moment/locale/id"; import { IDataDetailByIdCalender, IDataDetailByIdMember } from '../lib/type_calender'; -const dataAnggota = [ - { - id: 1, - name: "Iqbal Ramadan", - image: "https://i.pravatar.cc/1000?img=5", - email: "iqbal.ramadan@gmail.com", - }, - { - id: 2, - name: "Doni Setiawan", - image: "https://i.pravatar.cc/1000?img=10", - email: "doni.setiawan@gmail.com", - }, - { - id: 3, - name: "Rangga Agung", - image: "https://i.pravatar.cc/1000?img=51", - email: "rangga.agung@gmail.com", - }, - { - id: 4, - name: "Ramadan Sananta", - image: "https://i.pravatar.cc/1000?img=15", - email: "ramadan@gmail.com", - }, - { - id: 5, - name: "Imam Baroni", - image: "https://i.pravatar.cc/1000?img=22", - email: "imam.baroni@gmail.com", - }, -]; export default function DetailEventDivision() { const [openDrawer, setOpenDrawer] = useState(false) @@ -94,7 +62,7 @@ export default function DetailEventDivision() { - {moment(isDataCalender?.timeStart).format('LT')} | {moment(isDataCalender?.timeEnd).format('LT')} + {moment.utc(isDataCalender?.timeStart).format('HH:mm')} | {moment.utc(isDataCalender?.timeEnd).format('HH:mm')} diff --git a/src/module/calender/ui/drawer_detail_event.tsx b/src/module/calender/ui/drawer_detail_event.tsx index 8188a9c..a4c1774 100644 --- a/src/module/calender/ui/drawer_detail_event.tsx +++ b/src/module/calender/ui/drawer_detail_event.tsx @@ -40,7 +40,6 @@ export default function DrawerDetailEvent() { return ( - {JSON.stringify(param)} diff --git a/src/module/calender/ui/navbar_create_division_calender.tsx b/src/module/calender/ui/navbar_create_division_calender.tsx index 9d1dbc6..01720d3 100644 --- a/src/module/calender/ui/navbar_create_division_calender.tsx +++ b/src/module/calender/ui/navbar_create_division_calender.tsx @@ -1,6 +1,6 @@ "use client" import { LayoutNavbarNew, WARNA } from '@/module/_global'; -import { Avatar, Box, Button, Flex, Group, Input, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core'; +import { Avatar, Box, Button, Flex, Group, Input, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core'; import { DateInput, TimeInput } from '@mantine/dates'; import React, { useState } from 'react'; import { IoIosArrowDropright } from 'react-icons/io'; @@ -9,8 +9,8 @@ import LayoutModal from '@/module/_global/layout/layout_modal'; import toast from 'react-hot-toast'; import moment from 'moment'; import { useHookstate } from '@hookstate/core'; -import { globalCalender } from '../lib/val_calender'; -import { IFormMemberCalender } from '../lib/type_calender'; +import { globalCalender, globalUlangiEvent } from '../lib/val_calender'; +import { IFormMemberCalender, IFormUlangiEvent } from '../lib/type_calender'; import { funCreateCalender } from '../lib/api_calender'; import CreateUserCalender from './create_user_calender'; @@ -29,76 +29,64 @@ export default function NavbarCreateDivisionCalender() { timeStart: "", timeEnd: "", linkMeet: "", - repeatEventTyper: "1", + repeatEventTyper: "", desc: "", }) - function onTrue(val: boolean) { - if (val) { - toast.success("Sukses! Data tersimpan"); - } - setModal(false) - } - - async function onSubmit() { + async function onSubmit(val: boolean) { try { - if (isData.timeStart > isData.timeEnd) { - return toast.error("Waktu Akhir Tidak tepat"); - } - const response = await funCreateCalender({ - idDivision: param.id, - title: isData.title, - dateStart: isData.dateStart, - timeStart: isData.timeStart, - timeEnd: isData.timeEnd, - linkMeet: isData.linkMeet, - repeatEventTyper: isData.repeatEventTyper, - desc: isData.desc, - member: memberValue - }) - - if (response.success) { - toast.success(response.message) - setModal(false) - setData({ - ...isData, - title: "", - dateStart: "", - timeStart: "", - timeEnd: "", - linkMeet: "", - repeatEventTyper: "1", - desc: "", + if (val) { + if (isData.timeStart > isData.timeEnd) { + return toast.error("Waktu Akhir Tidak tepat"); + } + const response = await funCreateCalender({ + idDivision: param.id, + title: isData.title, + dateStart: isData.dateStart, + timeStart: isData.timeStart, + timeEnd: isData.timeEnd, + linkMeet: isData.linkMeet, + repeatEventTyper: isData.repeatEventTyper, + desc: isData.desc, + member: memberValue }) - memberUser.set([]) - } else { - toast.error(response.message) + + if (response.success) { + setModal(false) + router.push(`/division/${param.id}/calender`) + setData({ + ...isData, + title: "", + dateStart: "", + timeStart: "", + timeEnd: "", + linkMeet: "", + repeatEventTyper: "1", + desc: "", + }) + toast.success(response.message) + memberUser.set([]) + } else { + toast.error(response.message) + setModal(false) + } } } catch (error) { console.log(error) + setModal(false) toast.error("Gagal menambahkan pengumuman, coba lagi nanti"); + } finally { + setModal(false) } - console.log({ - idDivision: param.id, - title: isData.title, - dateStart: isData.dateStart, - timeStart: isData.timeStart, - timeEnd: isData.timeEnd, - linkMeet: isData.linkMeet, - repeatEventTyper: isData.repeatEventTyper, - desc: isData.desc, - member: memberValue - }) } - if(openMember) return setOpenMember(false)}/> + if (openMember) return setOpenMember(false)} /> return ( - {/*
{JSON.stringify(param.id, null, 1)}
*/} setData({ ...isData, linkMeet: event.target.value })} /> - router.push('/calender/create?page=ulangi-event')}> - - Ulangi Event - - - + }, + }} + size="md" + placeholder="Ulangi Event" + label="Ulangi Event" + data={[ + { value: '1', label: 'Acara 1 Kali' }, + { value: '2', label: 'Hari Kerja (Sen - Jum)' }, + { value: '3', label: 'Mingguan' }, + { value: '4', label: 'Bulanan' }, + { value: '5', label: 'Tahunan' }, + ]} + value={isData.repeatEventTyper} + onChange={(val: any) => + setData({ ...isData, repeatEventTyper: val }) + } + /> setOpenMember(true)}> setData({ ...isData, desc: event.target.value })} /> - { - memberUser.length > 0 && - - - Anggota Terpilih - Total {memberUser.length} Anggota - - - - - {memberUser.get().map((v: any, i: any) => { - return ( - - - - - - {v.name} - - - - - Anggota - - - ); - })} + { + memberUser.length > 0 && + + + Anggota Terpilih + Total {memberUser.length} Anggota + + + + + {memberUser.get().map((v: any, i: any) => { + return ( + + + + + + {v.name} + + + + + Anggota + + + ); + })} + - - } + } @@ -268,7 +265,7 @@ export default function NavbarCreateDivisionCalender() { setModal(false)} description="Apakah Anda yakin ingin menambahkan data?" - onYes={(val) => { onTrue(val) }} /> + onYes={(val) => { onSubmit(val) }} /> ); }