"use client"; // app/Footer.jsx 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); 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(() => { 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"); } }; // Close slider when clicking outside useEffect(() => { function handleClickOutside(event) { if (sliderRef.current && !sliderRef.current.contains(event.target)) { setShowSlider(false); } } if (showSlider) { document.addEventListener("mousedown", handleClickOutside); } else { document.removeEventListener("mousedown", handleClickOutside); } return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, [showSlider]); return ( ); } export default Footer;