Files
FPT/src/components/ScenarioActions.tsx
T
Damian Kellenberger 1e8f1772d9
Deploy App / deploy (push) Failing after 1m1s
First Commit
2026-07-08 00:13:32 +02:00

55 lines
1.2 KiB
TypeScript

"use client";
import { useRouter } from "next/navigation";
import { useState } from "react";
type Scenario = {
id: string;
name: string;
isBaseline: boolean;
};
type ScenarioActionsProps = {
planId: string;
scenarios: Scenario[];
};
export function ScenarioActions({ planId, scenarios }: ScenarioActionsProps) {
const router = useRouter();
const [loading, setLoading] = useState(false);
const baseline = scenarios.find((s) => s.isBaseline) ?? scenarios[0];
async function createScenario() {
const name = prompt("Name des neuen Szenarios:", "Alternativszenario");
if (!name) return;
setLoading(true);
const res = await fetch(`/api/plans/${planId}/scenarios`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name,
copyFromScenarioId: baseline?.id,
}),
});
setLoading(false);
if (res.ok) {
const data = await res.json();
router.push(`/plans/${planId}/scenarios/${data.id}`);
router.refresh();
}
}
return (
<button
type="button"
onClick={createScenario}
className="btn-secondary"
disabled={loading}
>
{loading ? "Erstellen…" : "+ Szenario kopieren"}
</button>
);
}