import React, { useState } from 'react'; import Layout from "../components/layout"; import fs from 'fs'; import path from 'path'; import { url } from 'inspector'; import ProtectedRoute, { serverSideAuth } from "/components/protectedRoute"; import axiosInstance from '../src/axiosSecure'; import { UserRole } from "@prisma/client"; const PDFViewerPage = ({ pdfFiles }) => { const [files, setFiles] = useState(pdfFiles); const handleFileDelete = async (fileName) => { const subfolder = 'permits'; // Change this as needed based on your subfolder structure try { await axiosInstance.delete(`/api/content/${subfolder}?file=${fileName}`); setFiles(files.filter(file => file.name !== fileName)); } catch (error) { console.error('Error deleting file:', error); } }; const handleFileUpload = async (event) => { const file = event.target.files[0]; //utf-8 encoding // const formData = new FormData(); const formData = new FormData(); // formData.append('file', file); const newFile = new File([file], encodeURI(file.name), { type: file.type }); formData.append('file', newFile); const subfolder = 'permits'; // Change this as needed based on your subfolder structure try { const response = await axiosInstance.post(`/api/content/${subfolder}`, formData, { headers: { 'Content-Type': 'multipart/form-data', // 'Content-Encoding': 'utf-8' } }); const newFiles = response.data.files.map(file => ({ name: decodeURIComponent(file.originalname), url: file.path })); setFiles([...files, ...newFiles]); } catch (error) { console.error('Error uploading file:', error); } }; return (

Разрешителни

За да качите файл кликнете на бутона по-долу и изберете файл от вашия компютър.

Съществуващи файлове:

{files.length > 0 ? ( files.map((file, index) => (
{file.name}
)) ) : (

Няма качени файлове.

)}
{/* Adjust the 100px based on your header/footer size */} {pdfFiles.map((file, index) => ( <>

Свали: {file.name}

< object data={file.url} type="application/pdf" style={{ width: '100%', height: '100%' }}>

Вашият браузър не поддържа PDFs файлове. Моля свалете файла за да го разгледате: Свали {file.name}.

Your browser does not support PDFs. Please download the PDF to view it: {file.name}.

))}
); }; export default PDFViewerPage; export const getServerSideProps = async (context) => { const permitsFolder = path.join('public', 'content', 'permits'); // Create folders if they do not exist if (!fs.existsSync(permitsFolder)) { fs.mkdirSync(permitsFolder, { recursive: true }); } //get all the files in the permits folder order them by date desc and display them const pdfFiles = fs.readdirSync(path.join(process.cwd(), permitsFolder)).map(file => { return { name: file, date: fs.statSync(path.join(process.cwd(), permitsFolder, file)).mtime, url: `/content/permits/${file}` }; }).sort((a, b) => b.date - a.date) .map(file => { return { name: file.name, url: file.url }; } ); return { props: { pdfFiles } }; }