"use client"; import * as React from "react"; import { useRouter } from "next/navigation"; import { Button } from "@/components/ui/button"; import { de } from "@/lib/i18n/de"; import { assetStatusEnum } from "@/db/schema"; import { setEquipmentStatus, deleteEquipment, } from "@/server/actions/equipment"; type Status = (typeof assetStatusEnum.enumValues)[number]; const STATUS_LABEL: Record = { einsatzbereit: de.status.einsatzbereit, wartung: de.status.wartung, ausser_dienst: de.status.ausser_dienst, }; export function EquipmentControls({ equipmentId, status, }: { equipmentId: string; status: Status; }) { const router = useRouter(); const [pending, startTransition] = React.useTransition(); const [error, setError] = React.useState(null); function onStatus(next: Status) { setError(null); startTransition(async () => { const res = await setEquipmentStatus({ id: equipmentId, status: next }); if (!res.ok) { setError(res.error); return; } router.refresh(); }); } function onDelete() { if (!window.confirm(de.verwaltung.loeschenBestaetigen)) return; setError(null); startTransition(async () => { const res = await deleteEquipment({ id: equipmentId }); if (!res.ok) { setError(res.error); return; } router.push("/verwaltung/geraete"); router.refresh(); }); } return (
{error ? {error} : null}
); }