import { useState } from "react"; import { ApiError } from "../api/client"; import { useCreateGroup } from "../hooks/groups"; import { useExpansions } from "../hooks/reference"; import { Switch } from "./Switch"; export function CreateGroupForm({ onCreated }: { onCreated?: () => void }) { const { data: expansions } = useExpansions(); const createGroup = useCreateGroup(); const [name, setName] = useState(""); const [selected, setSelected] = useState>(new Set()); const [error, setError] = useState(null); const toggle = (id: number) => setSelected((s) => { const next = new Set(s); next.has(id) ? next.delete(id) : next.add(id); return next; }); const submit = async () => { setError(null); try { await createGroup.mutateAsync({ name: name.trim(), expansion_ids: [...selected] }); onCreated?.(); } catch (e) { setError(e instanceof ApiError ? e.message : "Не удалось создать группу"); } }; return (

Новая группа

setName(e.target.value)} placeholder="Например: Вечер 40k" />
{(expansions ?? []).map((e) => ( ))}
{error &&

{error}

}
); }