diff --git a/components/Footer.jsx b/components/Footer.jsx index 86df0c4..f019acd 100644 --- a/components/Footer.jsx +++ b/components/Footer.jsx @@ -1,10 +1,76 @@ -"use client"; -import React from "react"; +"use client"; // Wichtig, um sicherzustellen, dass der Code nur auf dem Client ausgeführt wird +import React, { useEffect, useState } from "react"; import { Icon } from "@iconify/react"; +// indexDB-Funktionen nur im Browser importieren +let storePDF, getPDF; +if (typeof window !== "undefined") { + const indexedDBModule = require("../utils/indexedDB"); + storePDF = indexedDBModule.storePDF; + getPDF = indexedDBModule.getPDF; +} + function Footer() { + const [pdfName, setPdfName] = useState(""); + const [showSlider, setShowSlider] = useState(false); + + const pdfFiles = [ + "ACCESS.PDF", + "CPL.PDF", + "CPL220.PDF", + "CPL3.PDF", + "Daten_APL.pdf", + "Daten_CDO.pdf", + "Daten_DPL.pdf", + "KUE605.PDF", + "KUE605uC.PDF", + "KUE605uF.PDF", + "KUE705FO.PDF", + "Modem.pdf", + "PST212.PDF", + "Temper.pdf", + "Wasser.pdf", + "XIOPM.PDF", + ]; + + useEffect(() => { + if (typeof window !== "undefined" && getPDF && storePDF) { + 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); + } + } + + loadAndStorePDFs(); + } + }, [getPDF, storePDF]); + + const loadPDF = async (fileName) => { + if (typeof window !== "undefined" && getPDF) { + 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"); + } + } + }; + return ( -