"use client"; import { useState, useEffect } from "react"; import { API_BASE_URL } from "@/utils/api-config"; /** * SSLWarning - Zeigt eine Warnung für selbstsignierte SSL-Zertifikate an * und bietet eine Möglichkeit, diese zu akzeptieren */ export function SSLWarning() { const [showWarning, setShowWarning] = useState(false); useEffect(() => { // Prüfe, ob die Warnung angezeigt werden soll const hasSeenWarning = localStorage.getItem("ssl-warning-dismissed"); // Zeige die Warnung nur an, wenn der Benutzer sie noch nicht gesehen hat if (!hasSeenWarning) { setShowWarning(true); } }, []); // Teste die Backend-Verbindung und prüfe auf Zertifikatsprobleme useEffect(() => { if (!showWarning) return; const testConnection = async () => { try { // Teste HTTPS-Verbindung await fetch(`${API_BASE_URL}/health`, { method: 'GET', mode: 'no-cors' // Verwende no-cors für SSL-Tests }); // Bei erfolgreicher Verbindung: Blende die Warnung aus setShowWarning(false); } catch (error) { console.warn("SSL-Verbindungstest fehlgeschlagen:", error); // Bei Fehlern: Zeige die Warnung an setShowWarning(true); } }; testConnection(); }, [showWarning]); const dismissWarning = () => { localStorage.setItem("ssl-warning-dismissed", "true"); setShowWarning(false); }; const openBackendDirectly = () => { // Öffne das Backend direkt in einem neuen Tab window.open(API_BASE_URL, "_blank"); }; if (!showWarning) { return null; } return (

SSL-Sicherheitshinweis

Diese Anwendung verwendet ein selbstsigniertes SSL-Zertifikat für sichere Kommunikation. Um Verbindungsprobleme zu vermeiden, öffnen Sie bitte einmalig die folgende URL und akzeptieren Sie das Zertifikat:

); }