stabile version

This commit is contained in:
2026-04-15 15:17:11 +02:00
parent bd10bdc3ed
commit dd1d78e6ad
12 changed files with 248 additions and 167 deletions

View File

@@ -70,7 +70,9 @@ export default function EditCompanyPage() {
setTitleImageUrl(imgs[0] || null);
setOtherImageUrls(imgs.slice(1));
} catch (err) {
setError(err.response?.data || 'Fehler beim Laden');
// ✅ err.response.data kann ein Objekt sein → .error extrahieren
const serverMessage = err.response?.data?.error || err.response?.data;
setError(typeof serverMessage === 'string' ? serverMessage : 'Fehler beim Laden');
}
};
fetchData();
@@ -143,9 +145,15 @@ export default function EditCompanyPage() {
await axiosInstance.put(`/company/${id}`, formData, {
headers: { 'Content-Type': undefined }
});
navigate('/companies');
} catch (err) {
setError(err.response?.data || 'Fehler beim Speichern');
// ✅ Fehlermeldung korrekt aus Axios-Response extrahieren
const serverMessage = err.response?.data?.error || err.response?.data;
const message = typeof serverMessage === 'string'
? serverMessage
: err.message || 'Fehler beim Speichern';
setError(message);
setSaving(false);
}
};
@@ -165,8 +173,11 @@ export default function EditCompanyPage() {
<CardContent sx={{ p: 3 }}>
<Box component="form" onSubmit={handleSubmit}>
<Stack spacing={3}>
{error && <Alert severity="error">{error}</Alert>}
{error && (
<Alert severity="error">
{typeof error === 'string' ? error : JSON.stringify(error)}
</Alert>
)}
<TextField label="Name" value={name} fullWidth InputProps={{ readOnly: true }} helperText="Der Name kann nicht geändert werden." />
<TextField label="Beschreibung" name="description" value={form.description} onChange={handleChange} required fullWidth autoFocus multiline rows={6} />
<TextField label="Telefonnummer" name="phone" value={form.phone} onChange={handleChange} required fullWidth />
@@ -224,7 +235,6 @@ export default function EditCompanyPage() {
<Typography variant="body2" color="text.secondary" sx={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
{titleImageFile ? titleImageFile.name : titleImageUrl}
</Typography>
{/* Titelbild tauschen ohne zu löschen */}
<Button
component="label"
size="small"
@@ -261,7 +271,6 @@ export default function EditCompanyPage() {
</Typography>
<Stack spacing={1.5}>
{/* Bestehende weitere Bilder */}
{otherImageUrls.map((src, i) => (
<Box
key={`existing-${i}`}
@@ -287,7 +296,6 @@ export default function EditCompanyPage() {
</Box>
))}
{/* Neu hinzugefügte weitere Bilder */}
{otherPreviews.map((src, i) => (
<Box
key={`new-${i}`}