"use client"; import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/_admin_global/header_tamplate"; import { MODEL_VOTING } from "@/app_modules/vote/model/interface"; import { Affix, Box, Button, Center, Group, Modal, Pagination, Paper, rem, ScrollArea, Spoiler, Stack, Table, Text, Textarea, TextInput, Title, } from "@mantine/core"; import { useDisclosure, useShallowEffect } from "@mantine/hooks"; import { IconBan, IconCircleCheck, IconRefresh, IconSearch, } from "@tabler/icons-react"; import { gs_adminVoting_triggerReview, IRealtimeData, } from "@/app/lib/global_state"; import { AccentColor } from "@/app_modules/_global/color"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user"; import mqtt_client from "@/util/mqtt_client"; import { useAtom } from "jotai"; import moment from "moment"; import { useState } from "react"; import { WibuRealtime } from "wibu-pkg"; import { adminVote_funGetListReview } from "../../fun"; import { AdminVote_funEditStatusPublishById } from "../../fun/edit/fun_edit_status_publish_by_id"; import { AdminEvent_funEditCatatanById } from "../../fun/edit/fun_edit_status_reject_by_id"; export default function AdminVote_TableReview({ listVote, }: { listVote: MODEL_VOTING[]; }) { return ( <> ); } function TableStatus({ listData }: { listData: any }) { const [opened, { open, close }] = useDisclosure(false); const [data, setData] = useState(listData.data); const [isNPage, setNPage] = useState(listData.nPage); const [votingId, setVotingId] = useState(""); const [catatan, setCatatan] = useState(""); const [isLoadingPublish, setLoadingPublish] = useState(false); const [isSaveLoading, setSaveLoading] = useState(false); const [isActivePage, setActivePage] = useState(1); const [isSearch, setSearch] = useState(""); // Realtine const [isLoading, setIsLoading] = useState(false); const [isAdminVoting_TriggerReview, setIsAdminVoting_TriggerReview] = useAtom( gs_adminVoting_triggerReview ); const [isShowReload, setIsShowReload] = useState(false); useShallowEffect(() => { if (isAdminVoting_TriggerReview) { setIsShowReload(true); } }, [isAdminVoting_TriggerReview, setIsShowReload]); async function onLoadData() { const loadData = await adminVote_funGetListReview({ page: 1 }); setData(loadData.data as any); setNPage(loadData.nPage); setIsLoading(false); setIsShowReload(false); setIsAdminVoting_TriggerReview(false); } async function onSearch(s: string) { setSearch(s); const loadData = await adminVote_funGetListReview({ page: 1, search: s, }); setData(loadData.data as any); setNPage(loadData.nPage); } async function onPageClick(p: any) { setActivePage(p); const loadData = await adminVote_funGetListReview({ search: isSearch, page: p, }); setData(loadData.data as any); setNPage(loadData.nPage); } const TableRows = data.map((e, i) => (
{e?.Author?.username}
{e.title}
{e.deskripsi}
{e.Voting_DaftarNamaVote.map((v) => ( - {v.value} ))}
{e.awalVote.toLocaleDateString("id-ID", { dateStyle: "long" })}
{e.akhirVote.toLocaleDateString("id-ID", { dateStyle: "long" })}
)); return ( <> {/*
{JSON.stringify(listUser, null, 2)}
*/} Review } radius={"xl"} placeholder="Masukan judul" onChange={(val) => { onSearch(val.currentTarget.value); }} /> {isShowReload && (
)} {TableRows}
Username
Judul
Deskripsi
Pilihan
Mulai Vote
Selesai Vote
Aksi
{ onPageClick(val); }} />