Fix: voting status
Deskripsi: - Perubahan router status & riwayat
This commit is contained in:
3
src/app_modules/event/component/index.ts
Normal file
3
src/app_modules/event/component/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { Event_ComponentSkeletonDetailData } from "./skeleton/comp_skeleton_detail_data";
|
||||
|
||||
export { Event_ComponentSkeletonDetailData };
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -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} />
|
||||
) : (
|
||||
""
|
||||
)}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user