import { createFileRoute, useNavigate } from "@tanstack/react-router"; import { Box, Typography, IconButton } from "@mui/material"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { KPIForm } from "../components/KPIForm"; import type { Kennzahl } from "../types/kpi"; export const Route = createFileRoute("/config-add")({ component: ConfigAddPage, }); function ConfigAddPage() { const navigate = useNavigate(); const handleSave = async (formData: Partial) => { try { const existingKPIsResponse = await fetch('http://localhost:5050/api/kpi_setting/'); const existingKPIs = await existingKPIsResponse.json(); const maxPosition = existingKPIs.length > 0 ? Math.max(...existingKPIs.map((kpi: Kennzahl) => kpi.position)) : 0; const kpiData = { ...formData, position: maxPosition + 1, active: formData.active !== false }; const response = await fetch('http://localhost:5050/api/kpi_setting/', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(kpiData), }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } navigate({ to: "/config" }); } catch (error) { console.error('Error creating KPI:', error); throw error; } }; const handleCancel = () => { navigate({ to: "/config" }); }; return ( navigate({ to: "/config" })}> Neue Kennzahl hinzufügen ); }