Fix: voting status

Deskripsi:
- Perubahan router status & riwayat
This commit is contained in:
2024-10-29 14:10:46 +08:00
parent 8f76067380
commit e5e36a3889
35 changed files with 455 additions and 281 deletions

View File

@@ -0,0 +1,3 @@
import { Event_ComponentSkeletonDetailData } from "./skeleton/comp_skeleton_detail_data";
export { Event_ComponentSkeletonDetailData };

View File

@@ -0,0 +1,35 @@
"use client";
import { ComponentGlobal_CardStyles } from "@/app_modules/_global/component";
import { Stack, Title, Grid, Text, Center, Skeleton } from "@mantine/core";
import { data } from "autoprefixer";
export function Event_ComponentSkeletonDetailData() {
return (
<>
<ComponentGlobal_CardStyles marginBottom={"16px"}>
<Stack px={"sm"} spacing={"lg"}>
<Center>
<Skeleton radius={"xl"} h={20} />
</Center>
{Array.from(new Array(4)).map((e, i) => (
<Grid key={i}>
<Grid.Col span={4}>
<Skeleton radius={"xl"} h={20} />
</Grid.Col>
<Grid.Col span={1}>:</Grid.Col>
<Grid.Col span={"auto"}>
<Skeleton radius={"xl"} h={20} />
</Grid.Col>
</Grid>
))}
<Stack spacing={"xs"}>
<Skeleton radius={"xl"} h={20} w={200} />
<Skeleton radius={"xl"} h={20} />
</Stack>
</Stack>
</ComponentGlobal_CardStyles>
</>
);
}

View File

@@ -12,6 +12,7 @@ import { Button, Group, Stack } from "@mantine/core";
import moment from "moment";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { Event_ComponentSkeletonDetailData } from "../../component";
import ComponentEvent_DetailData from "../../component/detail/detail_data";
import { Event_funDeleteById } from "../../fun/delete/fun_delete";
import { Event_funEditStatusById } from "../../fun/edit/fun_edit_status_by_id";
@@ -19,19 +20,29 @@ import { MODEL_EVENT } from "../../model/interface";
export default function Event_DetailDraft({
dataEvent,
eventId,
}: {
dataEvent: MODEL_EVENT;
eventId: string;
}) {
const [data, setData] = useState(dataEvent);
const [data, setData] = useState<MODEL_EVENT | null>(dataEvent);
console.log(data, "ini data dipage");
if (!data) {
return (
<>
<Event_ComponentSkeletonDetailData />
</>
);
}
return (
<>
{/* <pre>{JSON.stringify(dataEvent.tanggal)}</pre> */}
<Stack spacing={"lg"}>
{dataEvent?.catatan ? (
<ComponentGlobal_BoxInformation
isReport
informasi={dataEvent?.catatan}
/>
{data?.catatan ? (
<ComponentGlobal_BoxInformation isReport informasi={data?.catatan} />
) : (
""
)}

View File

@@ -200,6 +200,7 @@ export default function Event_Edit({
onClick={() => onUpdate(router, value, setLoading)}
bg={MainColor.yellow}
color="yellow"
c={"black"}
>
Update
</Button>
@@ -216,13 +217,14 @@ async function onUpdate(
if (_.values(value).includes(""))
return ComponentGlobal_NotifikasiPeringatan("Lengkapi Data");
await Event_funEditById(value).then((res) => {
if (res.status === 200) {
ComponentGlobal_NotifikasiBerhasil(res.message);
setLoading(true);
router.back();
} else {
ComponentGlobal_NotifikasiGagal(res.message);
}
});
const res = await Event_funEditById(value);
setLoading(true);
if (res.status === 200) {
ComponentGlobal_NotifikasiBerhasil(res.message);
router.back();
setLoading(false);
} else {
ComponentGlobal_NotifikasiGagal(res.message);
}
}

View File

@@ -20,7 +20,7 @@ export async function Event_funEditById(data: MODEL_EVENT) {
});
if (!updt) return { status: 400, message: "Update Gagal" };
revalidatePath(RouterEvent.detail_draft + data.id);
revalidatePath(`/dev/event/detail/draft/`, "page");
return {
status: 200,
message: "Berhasil Update",

View File

@@ -1,6 +1,7 @@
"use server";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
export async function event_getOneById(eventId: string) {
const data = await prisma.event.findFirst({
@@ -31,5 +32,7 @@ export async function event_getOneById(eventId: string) {
},
});
revalidatePath("/dev/event/detail/draft/");
return data;
}

View File

@@ -15,24 +15,50 @@ export async function event_getAllByStatusId({
const takeData = 10;
const skipData = page * takeData - takeData;
const data = await prisma.event.findMany({
take: takeData,
skip: skipData,
orderBy: {
updatedAt: "desc",
},
where: {
active: true,
eventMaster_StatusId: statusId,
authorId: userLoginId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
if (statusId == "1") {
const data = await prisma.event.findMany({
take: takeData,
skip: skipData,
orderBy: {
updatedAt: "desc",
},
where: {
active: true,
eventMaster_StatusId: "1",
authorId: userLoginId,
tanggal: {
gte: new Date(),
},
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
} else {
const data = await prisma.event.findMany({
take: takeData,
skip: skipData,
orderBy: {
updatedAt: "desc",
},
where: {
active: true,
eventMaster_StatusId: statusId,
authorId: userLoginId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
}
}

View File

@@ -22,7 +22,6 @@ export default function Event_Riwayat({
dataRiwayatSaya?: MODEL_EVENT[];
}) {
const router = useRouter();
// const [tabsRiwayat, setTabsRiwayat] = useAtom(gs_event_riwayat)
const [changeStatus, setChangeStatus] = useState(statusId);
const listTabs = [

View File

@@ -27,7 +27,7 @@ export default function Event_StatusPage({
const [changeStatus, setChangeStatus] = useState(statusId);
async function onChangeStatus({ statusId }: { statusId: string }) {
router.push(RouterEvent.status({ id: statusId }));
router.replace(RouterEvent.status({ id: statusId }));
}
return (
@@ -36,7 +36,6 @@ export default function Event_StatusPage({
variant="pills"
radius="xl"
mt={1}
// defaultValue={"1"}
value={changeStatus}
onTabChange={(val: any) => {
setChangeStatus(val);