diff --git a/src/app/(application)/division/[id]/(fitur-division)/calender/[detail]/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/calender/[detail]/page.tsx
index eca6613..db733bc 100644
--- a/src/app/(application)/division/[id]/(fitur-division)/calender/[detail]/page.tsx
+++ b/src/app/(application)/division/[id]/(fitur-division)/calender/[detail]/page.tsx
@@ -1,10 +1,9 @@
import { DetailEventDivision } from '@/module/calender';
-import React from 'react';
function Page() {
return (
<>
-
+
>
);
}
diff --git a/src/app/api/calender/[id]/route.ts b/src/app/api/calender/[id]/route.ts
index 7c177b6..c080ed9 100644
--- a/src/app/api/calender/[id]/route.ts
+++ b/src/app/api/calender/[id]/route.ts
@@ -100,7 +100,7 @@ export async function GET(request: Request, context: { params: { id: string } })
}
- return NextResponse.json({ success: true, message: "Berhasil mendapatkan kalender", data: dataFix }, { status: 200 });
+ return NextResponse.json({ success: true, message: "Berhasil mendapatkan kalender", data: dataFix, user: user.id }, { status: 200 });
} catch (error) {
return NextResponse.json({ success: false, message: "Gagal mendapatkan kalender, data tidak ditemukan (error: 500)", }, { status: 500 });
@@ -139,13 +139,16 @@ export async function DELETE(request: Request, context: { params: { id: string }
},
data: {
isActive: false
+ },
+ select: {
+ dateStart: true
}
});
// create log user
const log = await createLogUser({ act: 'DELETE', desc: 'User menghapus data acara kalender', table: 'divisionCalendar', data: id })
- return NextResponse.json({ success: true, message: "Berhasil menghapus acara kalender", data }, { status: 200 });
+ return NextResponse.json({ success: true, message: "Berhasil menghapus acara kalender", data, user: user.id }, { status: 200 });
} catch (error) {
return NextResponse.json({ success: false, message: "Gagal menghapus kalender, coba lagi nanti (error: 500)", }, { status: 500 }
diff --git a/src/app/api/version-app/route.ts b/src/app/api/version-app/route.ts
index 80e9de8..b821ea4 100644
--- a/src/app/api/version-app/route.ts
+++ b/src/app/api/version-app/route.ts
@@ -2,7 +2,7 @@ import { NextResponse } from "next/server";
export async function GET(request: Request) {
try {
- return NextResponse.json({ success: true, version: "0.1.8", mode: "staging" }, { status: 200 });
+ return NextResponse.json({ success: true, version: "0.1.9", mode: "staging" }, { status: 200 });
} catch (error) {
console.error(error);
return NextResponse.json({ success: false, version: "Gagal mendapatkan version, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 });
diff --git a/src/module/calender/ui/create_calender_division_caleder.tsx b/src/module/calender/ui/create_calender_division_caleder.tsx
index f73c1a3..fd3f4d0 100644
--- a/src/module/calender/ui/create_calender_division_caleder.tsx
+++ b/src/module/calender/ui/create_calender_division_caleder.tsx
@@ -211,6 +211,7 @@ export default function CreateCalenderDivisionCaleder() {
}
/>
void }) {
- const router = useRouter()
const param = useParams<{ id: string }>()
const [selectedFiles, setSelectedFiles] = useState([])
const [isData, setData] = useState([])
@@ -34,11 +33,9 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
if (member.length > 0) {
setSelectedFiles(JSON.parse(JSON.stringify(member.get())))
}
- setLoading(false)
} else {
toast.error(response.message)
}
-
} catch (error) {
console.error(error)
toast.error("Gagal mendapatkan anggota, coba lagi nanti");
@@ -103,6 +100,7 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
async function fetchGetMember(val: string) {
setSearchQuery(val)
try {
+ setLoading(true)
const res = await funGetSearchMemberDivision('?search=' + val, param.id);
if (res.success) {
setData(res.data)
@@ -111,6 +109,8 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
}
} catch (error) {
console.error(error);
+ } finally {
+ setLoading(false)
}
}
diff --git a/src/module/calender/ui/create_user_detail_calender.tsx b/src/module/calender/ui/create_user_detail_calender.tsx
index 54d1603..1d57395 100644
--- a/src/module/calender/ui/create_user_detail_calender.tsx
+++ b/src/module/calender/ui/create_user_detail_calender.tsx
@@ -1,18 +1,19 @@
"use client"
-import React, { useState } from 'react';
-import { useParams, useRouter } from 'next/navigation';
+import { keyWibu, LayoutNavbarNew, SkeletonList, TEMA } from '@/module/_global';
import { funGetSearchMemberDivision, IDataMemberDivision } from '@/module/division_new';
-import toast from 'react-hot-toast';
+import { useHookstate } from '@hookstate/core';
+import { Carousel } from '@mantine/carousel';
+import { ActionIcon, Avatar, Box, Button, Center, Divider, Flex, Grid, Indicator, rem, Stack, Text, TextInput } from '@mantine/core';
import { useMediaQuery, useShallowEffect } from '@mantine/hooks';
-import { LayoutNavbarNew, SkeletonList, SkeletonSingle, TEMA } from '@/module/_global';
-import { ActionIcon, Avatar, Box, Button, Center, Divider, Flex, Grid, Group, Indicator, rem, Stack, Text, TextInput } from '@mantine/core';
+import { useParams, useRouter } from 'next/navigation';
+import { useState } from 'react';
+import toast from 'react-hot-toast';
import { FaCheck } from 'react-icons/fa6';
import { HiMagnifyingGlass } from 'react-icons/hi2';
import { IoArrowBackOutline, IoClose } from 'react-icons/io5';
-import { Carousel } from '@mantine/carousel';
import { funAddMemberCalender, funGetOneCalender } from '../lib/api_calender';
import { IDataDetailByIdCalender, IDataDetailByIdMember } from '../lib/type_calender';
-import { useHookstate } from '@hookstate/core';
+import { useWibuRealtime } from 'wibu-realtime';
export default function CreateUserDetailCalender() {
const router = useRouter()
@@ -27,6 +28,11 @@ export default function CreateUserDetailCalender() {
const [searchQuery, setSearchQuery] = useState('')
const tema = useHookstate(TEMA)
const isMobile2 = useMediaQuery("(max-width: 438px)");
+ const [loadingSubmit, setLoadingSubmit] = useState(false)
+ const [dataRealTime, setDataRealtime] = useWibuRealtime({
+ WIBU_REALTIME_TOKEN: keyWibu,
+ project: "sdm"
+ })
async function getData() {
try {
@@ -88,9 +94,13 @@ export default function CreateUserDetailCalender() {
if (selectedFiles.length == 0) {
return toast.error("Error! silahkan pilih anggota")
}
-
+ setLoadingSubmit(true)
const res = await funAddMemberCalender(String(isDataCalender?.idCalendar), selectedFiles)
if (res.success) {
+ setDataRealtime([{
+ category: "calendar-detail",
+ id: isDataCalender?.idCalendar,
+ }])
toast.success(res.message)
router.push('./')
} else {
@@ -99,6 +109,8 @@ export default function CreateUserDetailCalender() {
} catch (error) {
console.error(error);
toast.error("Gagal menambahkan anggota, coba lagi nanti");
+ } finally {
+ setLoadingSubmit(false)
}
}
@@ -290,6 +302,7 @@ export default function CreateUserDetailCalender() {
backgroundColor: `${tema.get().bgUtama}`,
}}>