Fix event

Deskripsi:
- Fix user server menjadi API di beranda
This commit is contained in:
2024-12-06 13:51:39 +08:00
parent 72cd56deb8
commit 2b08326bed
22 changed files with 476 additions and 235 deletions

View File

@@ -31,6 +31,8 @@ import { ComponentGlobal_CardStyles } from "@/app_modules/_global/component";
import moment from "moment";
import { gs_event_hotMenu } from "../global_state";
import { useAtom } from "jotai";
import { Event_funJoinEvent } from "../fun/create/fun_join_event";
import { Event_funJoinAndConfirmEvent } from "../fun/create/fun_join_and_confirm";
export default function Ui_Konfirmasi({
userLoginId,
@@ -43,6 +45,7 @@ export default function Ui_Konfirmasi({
const router = useRouter();
const [data, setData] = useState<MODEL_EVENT | null>(null);
const [isJoin, setIsJoin] = useState<boolean | null>(null);
const [isPresent, setIsPresent] = useState<boolean | null>(null);
useShallowEffect(() => {
@@ -54,10 +57,24 @@ export default function Ui_Konfirmasi({
API_RouteEvent.get_one_by_id({ eventId: eventId })
);
const res = await data.json();
console.log(res.data, "data event");
setData(res.data);
}
// CEK PESERTA
useShallowEffect(() => {
onCheckPeserta();
}, []);
async function onCheckPeserta() {
const res = await fetch(
API_RouteEvent.check_peserta({ eventId: eventId, userId: userLoginId })
);
const data = await res.json();
console.log("cek peserta", data);
setIsJoin(data);
}
// CEK KEHADIRAN
useShallowEffect(() => {
onLoadKehadiran();
}, []);
@@ -67,7 +84,6 @@ export default function Ui_Konfirmasi({
API_RouteEvent.check_kehadiran({ eventId: eventId, userId: userLoginId })
);
const data = await res.json();
setIsPresent(data);
}
@@ -94,6 +110,18 @@ export default function Ui_Konfirmasi({
);
}
if (isJoin == false) {
return (
<>
<UserNotJoin
title={data?.title}
eventId={eventId}
userLoginId={userLoginId}
/>
</>
);
}
if (isPresent && data) {
return <UserAlreadyConfirm title={data.title} />;
}
@@ -177,6 +205,77 @@ function SkeletonIsDataNull() {
);
}
function UserNotJoin({
title,
eventId,
userLoginId,
}: {
title: string;
eventId: string;
userLoginId: string;
}) {
const router = useRouter();
const [isLoading, setLoading] = useState(false);
async function onJoinAndKonfirmasi() {
setLoading(true);
const body = {
eventId: eventId,
userId: userLoginId,
};
const res = await Event_funJoinAndConfirmEvent(body as any);
if (res.status === 200) {
ComponentGlobal_NotifikasiBerhasil(res.message, 2000);
router.push(RouterEvent.detail_main + eventId);
} else {
setLoading(false);
ComponentGlobal_NotifikasiGagal(res.message);
}
}
return (
<>
<UIGlobal_LayoutDefault>
<Stack h={"100vh"} justify="center">
<ComponentGlobal_CardStyles>
<Stack align="center" justify="center">
<Text align="center">
Halo, Bapak/Ibu. Kami mencatat bahwa Anda belum melakukan
registrasi melalui aplikasi untuk mengikuti acara{" "}
<Text inherit span fw={"bold"}>
{title}.
</Text>{" "}
Mohon segera lakukan registrasi melalui Event App agar dapat
mengikuti acara ini. Jika membutuhkan bantuan, jangan ragu untuk
menghubungi tim kami. Terima kasih Terima kasih atas kehadiran
Anda di acara pada hari ini. Mohon untuk mengonfirmasi kehadiran
Anda dengan menekan tombol {"Join & Konfirmasi"}
atau fitur konfirmasi yang tersedia di bawah. Terima kasih dan
selamat menikmati acara.
</Text>
<Button
loading={isLoading}
loaderPosition="center"
radius={"xs"}
bg={MainColor.yellow}
color="yellow"
c={"black"}
onClick={() => {
onJoinAndKonfirmasi();
}}
>
Join & Konfirmasi
</Button>
</Stack>
</ComponentGlobal_CardStyles>
</Stack>
</UIGlobal_LayoutDefault>
</>
);
}
function EventAlreadyDone({
title,
eventId,