import React, { useState } from 'react'; import { Icons } from './IconSet'; interface LogoManagementModalProps { isOpen: boolean; onClose: () => void; projectId: string; currentLogoUrl?: string; onUpdate: () => void; } const LogoManagementModal: React.FC = ({ isOpen, onClose, projectId, currentLogoUrl, onUpdate }) => { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleFileUpload = async (file: File) => { try { setLoading(true); setError(null); const formData = new FormData(); formData.append('logo', file); const response = await fetch(`https://vollidioten.ceraticsoft.de/api/projects/${projectId}/logo/upload`, { method: 'POST', credentials: 'include', body: formData }); if (response.ok) { const data = await response.json(); console.log('Logo uploaded successfully:', data); onUpdate(); onClose(); } else { const errorData = await response.json(); setError(errorData.error || 'Fehler beim Hochladen des Logos'); } } catch (err) { console.error('Error uploading logo:', err); setError('Netzwerkfehler beim Hochladen'); } finally { setLoading(false); } }; const removeLogo = async () => { // Note: We'll need to implement logo deletion in the backend // For now, this is a placeholder alert('Logo-Löschen ist noch nicht implementiert. Kontaktieren Sie einen Administrator.'); }; if (!isOpen) return null; return (

Logo verwalten

{error && (

{error}

)} {/* Current Logo Preview */} {currentLogoUrl && (

Aktuelles Logo

Aktuelles Logo

Logo ist gesetzt

)} {/* File Upload */}
{ const file = e.target.files?.[0]; if (file) { handleFileUpload(file); } }} className="hidden" id="logo-upload" disabled={loading} />

• Das Logo wird in der Projektübersicht angezeigt

• Verwenden Sie transparente Hintergründe für beste Ergebnisse

• Das Logo wird automatisch auf 64x64px skaliert

); }; export default LogoManagementModal;