fix investasi pdf

This commit is contained in:
2025-03-04 11:00:33 +08:00
parent cabdb06732
commit 002b5d547b
5 changed files with 98 additions and 110 deletions

View File

@@ -1,32 +1,23 @@
"use client";
import { AccentColor, MainColor } from "@/app_modules/_global/color";
import {
ComponentGlobal_AvatarAndUsername,
ComponentGlobal_CardStyles,
} from "@/app_modules/_global/component";
import CustomSkeleton from "@/app_modules/components/CustomSkeleton";
import { RouterEvent } from "@/lib/router_hipmi/router_event";
import { clientLogger } from "@/util/clientLogger";
import {
Box,
Button,
Center,
Divider,
Flex,
Grid,
Image,
SimpleGrid,
Stack,
Text,
Title,
Stack
} from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { IconBrandWhatsapp } from "@tabler/icons-react";
import React, { useState } from "react";
import { TfiFacebook } from "react-icons/tfi";
import { apiGetOneSponsorEventById } from "../../_lib/api_event";
import { useParams, useRouter } from "next/navigation";
import { clientLogger } from "@/util/clientLogger";
import CustomSkeleton from "@/app_modules/components/CustomSkeleton";
import { useState } from "react";
import { apiGetOneSponsorEventById } from "../../_lib/api_event";
import { IEventSponsor } from "../../_lib/interface";
import { RouterEvent } from "@/lib/router_hipmi/router_event";
function DetailSponsor_Event({ userLoginId }: { userLoginId: string }) {
const params = useParams<{ id: string }>();

View File

@@ -1,66 +1,64 @@
"use client";
import { useEffect, useState } from "react";
import { getDocument, GlobalWorkerOptions } from "pdfjs-dist";
import { Image, Skeleton, Stack, Text } from "@mantine/core";
import { RouterInvestasi_OLD } from "@/lib/router_hipmi/router_investasi";
import { Image, Skeleton, Stack } from "@mantine/core";
import { useState } from "react";
GlobalWorkerOptions.workerSrc =
"https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.6.82/pdf.worker.min.mjs";
// GlobalWorkerOptions.workerSrc =
// "https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.6.82/pdf.worker.min.mjs";
const PdfToImage = ({ id, path }: { id: string; path: string }) => {
const [images, setImages] = useState<string[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
if (typeof window !== "undefined") {
const renderPages = async () => {
try {
const loadingTask = getDocument(path + id); // Menggunakan md sebagai URL PDF
const pdf = await loadingTask.promise;
const numPages = pdf.numPages;
const imagePromises: Promise<string>[] = [];
// useEffect(() => {
// if (typeof window !== "undefined") {
// const renderPages = async () => {
// try {
// const loadingTask = getDocument(path + id); // Menggunakan md sebagai URL PDF
// const pdf = await loadingTask.promise;
// const numPages = pdf.numPages;
// const imagePromises: Promise<string>[] = [];
for (let pageNum = 1; pageNum <= numPages; pageNum++) {
const renderPage = async (pageNum: number): Promise<string> => {
const page = await pdf.getPage(pageNum);
const viewport = page.getViewport({ scale: 2.0 });
// for (let pageNum = 1; pageNum <= numPages; pageNum++) {
// const renderPage = async (pageNum: number): Promise<string> => {
// const page = await pdf.getPage(pageNum);
// const viewport = page.getViewport({ scale: 2.0 });
// Buat elemen canvas
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
if (context) {
canvas.width = viewport.width;
canvas.height = viewport.height;
// // Buat elemen canvas
// const canvas = document.createElement("canvas");
// const context = canvas.getContext("2d");
// if (context) {
// canvas.width = viewport.width;
// canvas.height = viewport.height;
// Render halaman PDF ke dalam canvas
const renderContext = {
canvasContext: context,
viewport: viewport,
};
await page.render(renderContext).promise;
// // Render halaman PDF ke dalam canvas
// const renderContext = {
// canvasContext: context,
// viewport: viewport,
// };
// await page.render(renderContext).promise;
// Konversi canvas ke gambar (data URL)
return canvas.toDataURL("image/png");
}
return "";
};
// // Konversi canvas ke gambar (data URL)
// return canvas.toDataURL("image/png");
// }
// return "";
// };
imagePromises.push(renderPage(pageNum));
}
// imagePromises.push(renderPage(pageNum));
// }
const imageSrcs = await Promise.all(imagePromises);
setImages(imageSrcs);
} catch (error) {
console.error("Error rendering PDF to images:", error);
} finally {
setLoading(false);
}
};
// const imageSrcs = await Promise.all(imagePromises);
// setImages(imageSrcs);
// } catch (error) {
// console.error("Error rendering PDF to images:", error);
// } finally {
// setLoading(false);
// }
// };
renderPages();
}
}, [id, path]);
// renderPages();
// }
// }, [id, path]);
return (
<Stack>

View File

@@ -1,8 +1,23 @@
import { Investasi_ViewCreateBerita } from "./create/view_create_berita";
import { Investasi_ViewCreateDocument } from "./create/view_create_document";
import Investasi_ViewDetailDraft from "./detail/portofolio/view_detail_draft";
import Investasi_ViewDetailPublish from "./detail/portofolio/view_detail_publish";
import Investasi_ViewDetailReject from "./detail/portofolio/view_detail_reject";
import Investasi_ViewDetailReview from "./detail/portofolio/view_detail_review";
import { Investasi_ViewDetailBerita } from "./detail/view_berita";
import { Investasi_ViewDaftarBerita } from "./detail/view_daftar_berita";
import { Investasi_ViewDaftarDokumen } from "./detail/view_daftar_dokemen";
import { Investasi_ViewDetailMain } from "./detail/view_detail_main";
import { Investasi_ViewDetailProspektus } from "./detail/view_detail_prospektusl";
import { Investasi_ViewDetailSahamSaya } from "./detail/view_detail_saham_saya";
import { Investasi_ViewRekapBerita } from "./detail/view_rekap_berita";
import { Investasi_ViewRekapDokumen } from "./detail/view_rekap_dokumen";
import { Investasi_ViewEditDokumen } from "./edit/view_edit_dokumen";
import { Investasi_ViewEditInvestasi } from "./edit/view_edit_investasi";
import { Investasi_ViewEditProspektus } from "./edit/view_edit_prospektus";
import PdfToImage from "./file_view/view_file_viewer";
import { Investasi_ViewBeranda } from "./main/view_beranda";
import { Investasi_ViewPortofolio } from "./main/view_portofolio";
import { Investasi_ViewPortofolioReview } from "./main/portofolio/view_portofolio_review";
import { Investasi_ViewSahamSaya } from "./main/view_saham_saya";
import { Investasi_ViewTransaksiBerhasil } from "./status_transaksi/view_invoice_berhasil";
import { Investasi_ViewTransaksiGagal } from "./status_transaksi/view_transaksi_gagal";
@@ -10,47 +25,33 @@ import { Investasi_ViewInvoice } from "./transaksi/view_invoice";
import { Investasi_ViewMetodePembayaran } from "./transaksi/view_metode_pembayaran";
import { Investasi_ViewProsesPembelian } from "./transaksi/view_proses_pembelian";
import { Investasi_ViewProsesTransaksi } from "./transaksi/view_proses_transaksi";
import Investasi_ViewDetailPublish from "./detail/portofolio/view_detail_publish";
import Investasi_ViewDetailReview from "./detail/portofolio/view_detail_review";
import Investasi_ViewDetailDraft from "./detail/portofolio/view_detail_draft";
import Investasi_ViewDetailReject from "./detail/portofolio/view_detail_reject";
import { Investasi_ViewDetailProspektus } from "./detail/view_detail_prospektusl";
import { Investasi_ViewDaftarDokumen } from "./detail/view_daftar_dokemen";
import { Investasi_ViewEditDokumen } from "./edit/view_edit_dokumen";
import { Investasi_ViewEditInvestasi } from "./edit/view_edit_investasi";
import { Investasi_ViewEditProspektus } from "./edit/view_edit_prospektus";
import { Investasi_ViewCreateDocument } from "./create/view_create_document";
import { Investasi_ViewRekapDokumen } from "./detail/view_rekap_dokumen";
import { Investasi_ViewDetailMain } from "./detail/view_detail_main";
import { Investasi_ViewRekapBerita } from "./detail/view_rekap_berita";
import { Investasi_ViewDaftarBerita } from "./detail/view_daftar_berita";
import { Investasi_ViewCreateBerita } from "./create/view_create_berita";
import { Investasi_ViewDetailBerita } from "./detail/view_berita";
export { Investasi_ViewProsesPembelian };
export { Investasi_ViewMetodePembayaran };
export { Investasi_ViewInvoice };
export { Investasi_ViewProsesTransaksi };
export { Investasi_ViewBeranda };
export { Investasi_ViewTransaksiGagal };
export { Investasi_ViewTransaksiBerhasil };
export { PdfToImage as Investasi_ViewFileViewer };
export { Investasi_ViewSahamSaya };
export { Investasi_ViewDetailSahamSaya };
export { Investasi_ViewPortofolio };
export { Investasi_ViewDetailPublish };
export { Investasi_ViewDetailReview };
export { Investasi_ViewDetailDraft };
export { Investasi_ViewDetailReject };
export { Investasi_ViewDetailProspektus };
export { Investasi_ViewDaftarDokumen };
export { Investasi_ViewEditDokumen };
export { Investasi_ViewEditInvestasi };
export { Investasi_ViewEditProspektus };
export { Investasi_ViewCreateDocument };
export { Investasi_ViewRekapDokumen };
export { Investasi_ViewDetailMain };
export { Investasi_ViewRekapBerita };
export { Investasi_ViewDaftarBerita };
export { Investasi_ViewCreateBerita };
export { Investasi_ViewDetailBerita };
export {
Investasi_ViewBeranda,
Investasi_ViewCreateBerita,
Investasi_ViewCreateDocument,
Investasi_ViewDaftarBerita,
Investasi_ViewDaftarDokumen,
Investasi_ViewDetailBerita,
Investasi_ViewDetailDraft,
Investasi_ViewDetailMain,
Investasi_ViewDetailProspektus,
Investasi_ViewDetailPublish,
Investasi_ViewDetailReject,
Investasi_ViewDetailReview,
Investasi_ViewDetailSahamSaya,
Investasi_ViewEditDokumen,
Investasi_ViewEditInvestasi,
Investasi_ViewEditProspektus,
PdfToImage as Investasi_ViewFileViewer,
Investasi_ViewInvoice,
Investasi_ViewMetodePembayaran,
Investasi_ViewPortofolio,
Investasi_ViewProsesPembelian,
Investasi_ViewProsesTransaksi,
Investasi_ViewRekapBerita,
Investasi_ViewRekapDokumen,
Investasi_ViewSahamSaya,
Investasi_ViewTransaksiBerhasil,
Investasi_ViewTransaksiGagal,
};