'use client' import { useState } from 'react' import type { SeedURL, Category } from '../types' export default function SeedModal({ seed, categories, onClose, onSaved, }: { seed?: SeedURL | null categories: Category[] onClose: () => void onSaved: () => void }) { const [formData, setFormData] = useState>(seed || { url: '', category: 'federal', name: '', description: '', trustBoost: 0.5, enabled: true, }) const [saving, setSaving] = useState(false) const [saveError, setSaveError] = useState(null) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setSaving(true) setSaveError(null) try { const category = categories.find(c => c.name === formData.category || c.id === formData.category) const payload = { url: formData.url, name: formData.name, description: formData.description || '', category_id: category?.id || null, trust_boost: formData.trustBoost, enabled: formData.enabled, source_type: 'GOV', scope: 'FEDERAL', } if (seed) { const res = await fetch(`/api/admin/edu-search?id=${seed.id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }) if (!res.ok) { const errData = await res.json() throw new Error(errData.detail || errData.error || `HTTP ${res.status}`) } } else { const res = await fetch(`/api/admin/edu-search?action=seed`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }) if (!res.ok) { const errData = await res.json() throw new Error(errData.detail || errData.error || `HTTP ${res.status}`) } } onSaved() onClose() } catch (err) { console.error('Failed to save seed:', err) setSaveError(err instanceof Error ? err.message : 'Fehler beim Speichern') } finally { setSaving(false) } } return (

{seed ? 'Seed bearbeiten' : 'Neue Seed-URL hinzufügen'}

{saveError && (
{saveError}
)}
setFormData({ ...formData, url: e.target.value })} />
setFormData({ ...formData, name: e.target.value })} />