Loading web/src/domain/useCase/usePointOfInterest.ts +3 −3 Original line number Diff line number Diff line Loading @@ -206,10 +206,10 @@ export const usePointOfInterest = ( const getPdfById = async ( idPlace: number, pointsId: number[] ): Promise<string | null> => { ): Promise<Blob | null> => { try { const pdfUrl = await POIRepository.getPDFByPoints(idPlace, pointsId); return pdfUrl; const pdfBlob = await POIRepository.getPDFByPoints(idPlace, pointsId); return pdfBlob; } catch (error: any) { if (axios.isAxiosError(error)) { error as AxiosError; Loading web/src/presentation/admin/admin_panel_poi/admin_panel_poi_list/admin_panel_poi_list.tsx +3 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ interface props { isWindowActive: boolean; setActualPoint: Dispatch<SetStateAction<PointOfInterest | undefined>>; setWindowVisibilityViewer: (visibility: boolean) => void; setBinaryData: Dispatch<SetStateAction<string>>; setBlobData: Dispatch<SetStateAction<Blob | null>>; setIsPDFViewerActive: Dispatch<SetStateAction<boolean>>; setIsWindowsActive: Dispatch<SetStateAction<boolean>>; } Loading @@ -26,7 +26,7 @@ export const AdminPanelPoiList = ({ isWindowActive, setActualPoint, setWindowVisibilityViewer, setBinaryData, setBlobData, setIsPDFViewerActive, setIsWindowsActive, }: props) => { Loading Loading @@ -68,7 +68,7 @@ export const AdminPanelPoiList = ({ if (res !== null) { setIsPDFViewerActive(true); setIsWindowsActive(true); setBinaryData(res); setBlobData(res); } setIsPDFLoading(false); }; Loading web/src/presentation/admin/admin_panel_poi/admin_panel_poi_screen/admin_panel_poi_screen.tsx +18 −5 Original line number Diff line number Diff line import { Dispatch, SetStateAction, useState } from "react"; import { Dispatch, SetStateAction, useEffect, useState } from "react"; import { AdminPanelPoiRegister } from "../admin_panel_poi_register/admin_panel_poi_register"; import "./assets/css/styles.css"; import { AdminPanelPoiList } from "../admin_panel_poi_list/admin_panel_poi_list"; Loading Loading @@ -28,7 +28,8 @@ export const AdminPanelPoiScreen = ({ const [isRegisterWindowActive, setIsRegisterWindowActive] = useState(false); // Register window visibility const [isViewerWindowActive, setIsViewerWindowActive] = useState(false); // Viewer window visibility const [isPDFViewerActive, setIsPDFViewerActive] = useState(false); // PDF viewer visibility const [binaryData, setBinaryData] = useState(""); // Binary data for PDF const [blobData, setBlobData] = useState<Blob | null>(null); // Blob data for PDF const [pdfUrl, setPdfUrl] = useState(""); // PDF URL // Function to force re-render the POI list const forceRenderList = () => { Loading @@ -48,6 +49,18 @@ export const AdminPanelPoiScreen = ({ setIsWindowActive(visibility); }; useEffect(() => { if (blobData) { const url = URL.createObjectURL(blobData); console.log(url); setPdfUrl(url); return () => { URL.revokeObjectURL(url); }; } }, [blobData]); return ( <div className="admin_panel_poi_content"> <div className="panel_poi_header"> Loading Loading @@ -85,7 +98,7 @@ export const AdminPanelPoiScreen = ({ setActualPoint={setActualPoint} setWindowVisibilityViewer={setWindowVisibilityViewer} isWindowActive={isWindowActive} setBinaryData={setBinaryData} setBlobData={setBlobData} setIsPDFViewerActive={setIsPDFViewerActive} setIsWindowsActive={setIsWindowActive} /> Loading @@ -98,13 +111,13 @@ export const AdminPanelPoiScreen = ({ onClick={() => { setIsPDFViewerActive(false); setIsWindowActive(false); setBinaryData(""); setBlobData(null); }} /> </div> <div className="pdf_viewer_body"> <iframe src={"data:application/pdf;base64," + binaryData} src={pdfUrl} height="100%" width="100%" title="PDF Viewer" Loading Loading
web/src/domain/useCase/usePointOfInterest.ts +3 −3 Original line number Diff line number Diff line Loading @@ -206,10 +206,10 @@ export const usePointOfInterest = ( const getPdfById = async ( idPlace: number, pointsId: number[] ): Promise<string | null> => { ): Promise<Blob | null> => { try { const pdfUrl = await POIRepository.getPDFByPoints(idPlace, pointsId); return pdfUrl; const pdfBlob = await POIRepository.getPDFByPoints(idPlace, pointsId); return pdfBlob; } catch (error: any) { if (axios.isAxiosError(error)) { error as AxiosError; Loading
web/src/presentation/admin/admin_panel_poi/admin_panel_poi_list/admin_panel_poi_list.tsx +3 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ interface props { isWindowActive: boolean; setActualPoint: Dispatch<SetStateAction<PointOfInterest | undefined>>; setWindowVisibilityViewer: (visibility: boolean) => void; setBinaryData: Dispatch<SetStateAction<string>>; setBlobData: Dispatch<SetStateAction<Blob | null>>; setIsPDFViewerActive: Dispatch<SetStateAction<boolean>>; setIsWindowsActive: Dispatch<SetStateAction<boolean>>; } Loading @@ -26,7 +26,7 @@ export const AdminPanelPoiList = ({ isWindowActive, setActualPoint, setWindowVisibilityViewer, setBinaryData, setBlobData, setIsPDFViewerActive, setIsWindowsActive, }: props) => { Loading Loading @@ -68,7 +68,7 @@ export const AdminPanelPoiList = ({ if (res !== null) { setIsPDFViewerActive(true); setIsWindowsActive(true); setBinaryData(res); setBlobData(res); } setIsPDFLoading(false); }; Loading
web/src/presentation/admin/admin_panel_poi/admin_panel_poi_screen/admin_panel_poi_screen.tsx +18 −5 Original line number Diff line number Diff line import { Dispatch, SetStateAction, useState } from "react"; import { Dispatch, SetStateAction, useEffect, useState } from "react"; import { AdminPanelPoiRegister } from "../admin_panel_poi_register/admin_panel_poi_register"; import "./assets/css/styles.css"; import { AdminPanelPoiList } from "../admin_panel_poi_list/admin_panel_poi_list"; Loading Loading @@ -28,7 +28,8 @@ export const AdminPanelPoiScreen = ({ const [isRegisterWindowActive, setIsRegisterWindowActive] = useState(false); // Register window visibility const [isViewerWindowActive, setIsViewerWindowActive] = useState(false); // Viewer window visibility const [isPDFViewerActive, setIsPDFViewerActive] = useState(false); // PDF viewer visibility const [binaryData, setBinaryData] = useState(""); // Binary data for PDF const [blobData, setBlobData] = useState<Blob | null>(null); // Blob data for PDF const [pdfUrl, setPdfUrl] = useState(""); // PDF URL // Function to force re-render the POI list const forceRenderList = () => { Loading @@ -48,6 +49,18 @@ export const AdminPanelPoiScreen = ({ setIsWindowActive(visibility); }; useEffect(() => { if (blobData) { const url = URL.createObjectURL(blobData); console.log(url); setPdfUrl(url); return () => { URL.revokeObjectURL(url); }; } }, [blobData]); return ( <div className="admin_panel_poi_content"> <div className="panel_poi_header"> Loading Loading @@ -85,7 +98,7 @@ export const AdminPanelPoiScreen = ({ setActualPoint={setActualPoint} setWindowVisibilityViewer={setWindowVisibilityViewer} isWindowActive={isWindowActive} setBinaryData={setBinaryData} setBlobData={setBlobData} setIsPDFViewerActive={setIsPDFViewerActive} setIsWindowsActive={setIsWindowActive} /> Loading @@ -98,13 +111,13 @@ export const AdminPanelPoiScreen = ({ onClick={() => { setIsPDFViewerActive(false); setIsWindowActive(false); setBinaryData(""); setBlobData(null); }} /> </div> <div className="pdf_viewer_body"> <iframe src={"data:application/pdf;base64," + binaryData} src={pdfUrl} height="100%" width="100%" title="PDF Viewer" Loading