HOTFIX: useMutation.run returns MutationOutcome (no throw); sweep all 7 call sites + README convention
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,14 @@ Erwartet die laufende GerbilManagerWebAPI unter `http://localhost:5179`
|
||||
`src/strings/de.ts` — keine Texte direkt in Komponenten hartkodieren.
|
||||
- API-Zugriffe laufen über `src/api/client.ts`.
|
||||
- Routen werden in `src/App.tsx` registriert, Seiten liegen in `src/pages/`.
|
||||
- **Mutationen** (`useMutation` aus `src/hooks/useApi.ts`): `run()` wirft NIE,
|
||||
sondern liefert ein `MutationOutcome<T>` — `{ ok: true, value }` oder
|
||||
`{ ok: false, error, cause }`. Aufrufer MÜSSEN verzweigen:
|
||||
`const r = await m.run(x); if (r.ok) navigate(r.value.id)`. `m.error` treibt
|
||||
die Inline-Anzeige; für Spezialfälle (z. B. HTTP 409) `r.cause` prüfen
|
||||
(`r.cause instanceof ApiError && r.cause.status === 409`). So sind unbehandelte
|
||||
Promise-Rejections an Aufrufstellen ausgeschlossen (siehe auch
|
||||
`src/dev/unhandledRejectionGuard.ts`).
|
||||
|
||||
## Build
|
||||
|
||||
|
||||
Reference in New Issue
Block a user