"use client"; import { AccentColor, MainColor, } from "@/app_modules/_global/color/color_pallet"; import { ComponentGlobal_AvatarAndUsername, ComponentGlobal_CardStyles, } from "@/app_modules/_global/component"; import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; import notifikasiToUser_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_user"; import mqtt_client from "@/util/mqtt_client"; import { Badge, Box, Button, Center, Group, Radio, Stack, Text, Title, } from "@mantine/core"; import _ from "lodash"; import moment from "moment"; import { useState } from "react"; import ComponentVote_HasilVoting from "../../component/detail/detail_hasil_voting"; import { Vote_funCreateHasil } from "../../fun/create/create_hasil"; import { voting_funGetOneVotingbyId } from "../../fun/get/fun_get_one_by_id"; import { MODEL_VOTING } from "../../model/interface"; import { IRealtimeData } from "@/app/lib/global_state"; import { WibuRealtime } from "wibu-pkg"; export default function Vote_MainDetail({ dataVote, hasilVoting, isKontributor, pilihanKontributor, listKontributor, userLoginId, }: { dataVote: MODEL_VOTING; hasilVoting: any; isKontributor: boolean; pilihanKontributor: string; listKontributor: any[]; userLoginId: string; }) { const [data, setData] = useState(dataVote); const today = new Date(); return ( <> {moment(dataVote?.awalVote).diff(today, "hours") < 0 ? ( "" ) : ( )} ); } function TampilanDataVoting({ dataVote, setData, isKontributor, pilihanKontributor, userLoginId, }: { dataVote?: MODEL_VOTING; setData: any; isKontributor: boolean; pilihanKontributor: any; userLoginId: string; }) { const [votingNameId, setVotingNameId] = useState(""); const today = new Date(); return ( <> {/* */}
{dataVote?.title}
{dataVote?.deskripsi} Batas Voting {dataVote?.awalVote.toLocaleDateString(["id-ID"], { dateStyle: "medium", })} - {dataVote?.akhirVote.toLocaleDateString(["id-ID"], { dateStyle: "medium", })}
{isKontributor ? ( Pilihan anda: {pilihanKontributor.Voting_DaftarNamaVote.value} ) : ( { setVotingNameId(val); }} label={ Pilihan : } > {dataVote?.Voting_DaftarNamaVote.map((v) => ( ))}
{_.isEmpty(votingNameId) ? ( ) : ( )}
)}
); } async function onVote( pilihanVotingId: string, voteId: string, setData: any, userLoginId: string ) { const res = await Vote_funCreateHasil(pilihanVotingId, voteId); if (res.status === 201) { await voting_funGetOneVotingbyId(voteId).then((val) => { setData(val); ComponentGlobal_NotifikasiBerhasil(res.message); }); if (userLoginId !== res?.data?.Voting?.authorId) { const dataNotifikasi: IRealtimeData = { appId: res?.data?.Voting?.id as string, userId: res?.data?.Voting?.authorId as string, pesan: res?.pilihan as string, status: "Voting Masuk", kategoriApp: "VOTING", title: "User lain telah melakukan voting !", }; const createNotifikasi = await notifikasiToUser_funCreate({ data: dataNotifikasi as any, }); if (createNotifikasi.status === 201) { WibuRealtime.setData({ type: "notification", pushNotificationTo: "USER", dataMessage: dataNotifikasi, }); } } } else { ComponentGlobal_NotifikasiPeringatan(res.message); } }