PDFs in public direct von CPL anfragen und nicht in indexedDB speichern.

IndexedDB wird nicht mehr benötigt, Redux übernimmt die Speicherung der Variablen
This commit is contained in:
ISA
2024-11-04 11:37:52 +01:00
parent f9fb338915
commit eabcb1f25a
4 changed files with 19 additions and 75 deletions

View File

@@ -1,10 +1,8 @@
"use client"; // app/Footer.jsx
"use client"; // Wichtig, um sicherzustellen, dass der Code nur auf dem Client ausgeführt wird
import React, { useEffect, useState, useRef } from "react";
import { Icon } from "@iconify/react";
import { storePDF, getPDF } from "../utils/indexedDB"; // Korrekte Importe für die PDF-Funktionen
function Footer() {
const [pdfName, setPdfName] = useState("");
const [showSlider, setShowSlider] = useState(false);
const sliderRef = useRef(null);
@@ -27,41 +25,14 @@ function Footer() {
//"XIOPM.PDF",
];
useEffect(() => {
async function loadAndStorePDFs() {
try {
for (const fileName of pdfFiles) {
const storedPdf = await getPDF(fileName);
if (!storedPdf) {
const response = await fetch(`/doku/${fileName}`);
const pdfBlob = await response.blob();
await storePDF(fileName, pdfBlob);
console.log(`${fileName} in IndexedDB gespeichert.`);
}
}
} catch (error) {
console.error("Fehler beim Laden oder Speichern der PDFs:", error);
}
}
if (typeof window !== "undefined") {
loadAndStorePDFs();
}
}, []);
const loadPDF = async (fileName) => {
const storedPdf = await getPDF(fileName);
if (storedPdf) {
const pdfUrl = URL.createObjectURL(storedPdf);
window.open(pdfUrl, "_blank"); // Öffnet die PDF in einem neuen Tab
setPdfName(fileName);
setShowSlider(false);
} else {
console.error("PDF nicht in IndexedDB gefunden");
}
// Funktion zum Laden der PDFs direkt aus dem öffentlichen Verzeichnis
const loadPDF = (fileName) => {
const pdfUrl = `/doku/${fileName}`; // Annahme: Die PDFs liegen im Ordner "public/doku"
window.open(pdfUrl, "_blank"); // Öffnet die PDF in einem neuen Tab
setShowSlider(false);
};
// Close slider when clicking outside
// Schließt den Slider, wenn außerhalb geklickt wird
useEffect(() => {
function handleClickOutside(event) {
if (sliderRef.current && !sliderRef.current.contains(event.target)) {