diff --git a/src/admin/NewsManager.tsx b/src/admin/NewsManager.tsx index 5a2b508b5..72479f4dc 100644 --- a/src/admin/NewsManager.tsx +++ b/src/admin/NewsManager.tsx @@ -24,6 +24,7 @@ const NewsManager = () => { const [newDescription, setNewDescription] = useState(""); const [newImageUrl, setNewImageUrl] = useState(""); const [newTeam, setNewTeam] = useState(""); + const [uploading, setUploading] = useState(false); const [showDeleteModal, setShowDeleteModal] = useState(false); const [deleteId, setDeleteId] = useState(null); @@ -86,15 +87,15 @@ const NewsManager = () => { setDeleteId(id); setShowDeleteModal(true); }; - + const handleDelete = async () => { if (!deleteId) return; - + try { const res = await fetch(`${apiBase}/api/news/${deleteId}`, { method: "DELETE", }); - + if (res.ok) { await loadNews(); } else { @@ -107,7 +108,6 @@ const NewsManager = () => { setDeleteId(null); } }; - const resetForm = () => { setNewTitle(""); @@ -117,6 +117,28 @@ const NewsManager = () => { setCurrentId(null); }; + const handleImageUpload = async (file: File) => { + const formData = new FormData(); + formData.append("image", file); + setUploading(true); + + try { + const res = await fetch(`${apiBase}/api/upload-news-image`, { + method: "POST", + body: formData, + }); + + if (!res.ok) throw new Error("Fehler beim Bild-Upload"); + + const data = await res.json(); + setNewImageUrl(data.imageUrl); + } catch (err) { + console.error("Bild-Upload fehlgeschlagen:", err); + } finally { + setUploading(false); + } + }; + return (
@@ -139,39 +161,72 @@ const NewsManager = () => { {editMode ? "News bearbeiten" : "Neue News anlegen"}
- setNewTitle(e.target.value)} /> -