import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, Box, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Button } from '@mui/material'; import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; import SearchIcon from '@mui/icons-material/Search'; import EditIcon from '@mui/icons-material/Edit'; import { useState } from 'react'; // Beispiel-Daten const exampleData = [ { label: 'Fondsname', value: 'Fund Real Estate Prime Europe', page: 1, status: 'ok' }, { label: 'Fondsmanager', value: '', page: 1, status: 'error' }, { label: 'Risikoprofil', value: 'Core/Core+', page: 10, status: 'warning' }, { label: 'LTV', value: '30-35 %', page: 8, status: 'ok' } ]; // React-Komponente export default function KennzahlenTable() { // Zustand für bearbeitbare Daten const [rows, setRows] = useState(exampleData); // Zustände für Dialog-Funktion const [open, setOpen] = useState(false); // Dialog anzeigen? const [currentValue, setCurrentValue] = useState(''); // Eingabewert const [currentIndex, setCurrentIndex] = useState(null); // Zeilenindex // Beim Klick auf das Stift-Icon: Dialog öffnen const handleEditClick = (value: string, index: number) => { setCurrentValue(value); setCurrentIndex(index); setOpen(true); }; // Wert speichern und Dialog schließen const handleSave = () => { if (currentIndex !== null) { const updated = [...rows]; updated[currentIndex].value = currentValue; setRows(updated); } setOpen(false); }; return ( <> {/* Tabellenkopf */} Kennzahl Wert Seite {/* Tabelleninhalt */} {rows.map((row, index) => { // Rahmenfarbe anhand Status let borderColor = 'transparent'; if (row.status === 'error') borderColor = 'red'; else if (row.status === 'warning') borderColor = '#f6ed48'; return ( {/* Kennzahl */} {row.label} {/* Wert mit Status-Icons + Stift rechts */} {row.status === 'error' && } {row.status === 'warning' && } {row.value || '—'} {/* Stift-Icon */} handleEditClick(row.value, index)} /> {/* Seitenzahl */} {row.page} ); })}
{/* Dialog zum Bearbeiten */} setOpen(false)}> Kennzahl bearbeiten setCurrentValue(e.target.value)} label="Neuer Wert" variant="outlined" margin="dense" /> ); }