"use client"; import { RouterAdminEvent } from "@/app/lib/router_admin/router_admin_event"; import { MODEL_EVENT } from "@/app_modules/event/_lib/interface"; import { Box, Button, Center, Group, Pagination, Paper, ScrollArea, Spoiler, Stack, Table, Text, TextInput, Title, } from "@mantine/core"; import { IconCircleCheck, IconDetails, IconEyeCheck, IconSearch } from "@tabler/icons-react"; import _ from "lodash"; import { useRouter } from "next/navigation"; import { useState } from "react"; import ComponentAdminGlobal_HeaderTamplate from "../../_admin_global/header_tamplate"; import { adminEvent_funGetListPublish } from "../fun"; import QRCode from "react-qr-code"; import { useShallowEffect } from "@mantine/hooks"; import { ComponentAdminGlobal_TitlePage } from "../../_admin_global/_component"; import { MainColor } from "@/app_modules/_global/color"; export default function AdminEvent_TablePublish({ listPublish, }: { listPublish: any; }) { return ( <> ); } function TableStatus({ listPublish }: { listPublish: any }) { const router = useRouter(); const [data, setData] = useState(listPublish.data); const [isNPage, setNPage] = useState(listPublish.nPage); const [isActivePage, setActivePage] = useState(1); const [isSearch, setSearch] = useState(""); const [eventId, setEventId] = useState(""); const [loading, setLoading] = useState(false); const [origin, setOrigin] = useState(""); useShallowEffect(() => { if (typeof window !== "undefined") { // console.log(window.location.origin); setOrigin(window.location.origin); } }, [setOrigin]); // async function onLoadOrigin(setOrigin: any) { // const res = await fetch("/api/origin-url"); // const result = await res.json(); // setOrigin(result.origin); // } async function onSearch(s: string) { setSearch(s); const loadData = await adminEvent_funGetListPublish({ page: 1, search: s, }); setData(loadData.data as any); setNPage(loadData.nPage); } async function onPageClick(p: any) { setActivePage(p); const loadData = await adminEvent_funGetListPublish({ search: isSearch, page: p, }); setData(loadData.data as any); setNPage(loadData.nPage); } const TableRows = _.isEmpty(data) ? (
Belum Ada Data
) : ( data.map((e, i) => (
{ const svg: any = document.getElementById(e.id); const svgData = new XMLSerializer().serializeToString(svg); const canvas = document.createElement("canvas"); const ctx: any = canvas.getContext("2d"); const img = new Image(); img.onload = () => { canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0); const pngFile = canvas.toDataURL("image/png"); const downloadLink = document.createElement("a"); downloadLink.download = `QRCode ${e.title}`; downloadLink.href = `${pngFile}`; downloadLink.click(); }; img.src = `data:image/svg+xml;base64,${btoa(svgData)}`; }} />
{e?.Author?.username}
{e.title}
{e.lokasi}
{e.EventMaster_TipeAcara.name}
{" "} {new Intl.DateTimeFormat("id-ID", { dateStyle: "full", }).format(e?.tanggal)} ,{" "} {new Intl.DateTimeFormat("id-ID", { timeStyle: "short", }).format(e?.tanggal)}
{" "} {new Intl.DateTimeFormat("id-ID", { dateStyle: "full", }).format(e?.tanggalSelesai)} ,{" "} {new Intl.DateTimeFormat("id-ID", { timeStyle: "short", }).format(e?.tanggalSelesai)}
{e.deskripsi}
)) ); return ( <> } radius={"xl"} placeholder="Masukan judul" onChange={(val) => { onSearch(val.currentTarget.value); }} /> } /> {/* Publish } radius={"xl"} placeholder="Masukan judul" onChange={(val) => { onSearch(val.currentTarget.value); }} /> */} {TableRows}
QR Code
Download QR
Username
Judul
Lokasi
Tipe Acara
Tanggal & Waktu Mulai
Tanggal & Waktu Selesai
Deskripsi
Aksi
{ onPageClick(val); }} />
); }