import { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import { api } from '../../api/client.js'; const emptyForm = { name: '', sort_order: 0 }; export default function Brands() { const [brands, setBrands] = useState([]); const [form, setForm] = useState(emptyForm); const [editingId, setEditingId] = useState(null); const [error, setError] = useState(''); const load = () => api.get('/brands').then(setBrands); useEffect(() => { load(); }, []); const startEdit = (brand) => { setEditingId(brand.id); setForm({ name: brand.name, sort_order: brand.sort_order }); }; const resetForm = () => { setEditingId(null); setForm(emptyForm); }; const handleSubmit = async (e) => { e.preventDefault(); setError(''); try { if (editingId) { await api.put(`/brands/${editingId}`, form); } else { await api.post('/brands', form); } resetForm(); load(); } catch (err) { setError(err.message); } }; const handleDelete = async (id) => { if (!confirm('Marke inkl. aller Modelle/Pakete/Produkte wirklich löschen?')) return; await api.delete(`/brands/${id}`); load(); }; return (

Marken

{brands.map((brand) => ( ))} {brands.length === 0 && ( )}
Name Sortierung Aktionen
{brand.name} {brand.sort_order}
Noch keine Marken angelegt.

{editingId ? 'Marke bearbeiten' : 'Neue Marke'}

setForm({ ...form, name: e.target.value })} className="w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-900" />
setForm({ ...form, sort_order: Number(e.target.value) })} className="w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-900" />
{error &&

{error}

}
{editingId && ( )}
); }