feat(web): Base UI toast region + global mutation feedback wiring (#47)

Add a module-scope Base UI toast manager bridged to the QueryClient so
every mutation can give consistent feedback. A MutationCache (extracted
into a makeQueryClient() factory for test reuse) emits a catch-all,
type-aware error toast (unless meta.suppressErrorToast) and an opt-in
success toast (meta.successMessage), reading mutation.meta + i18n.t
outside React. meta is type-checked via a react-query Register
augmentation. ToastRegion is mounted app-wide in main.tsx. Adds a toast
i18n namespace (en/sv parity) and a validated story.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 12:46:26 +02:00
parent 63bfff417b
commit 604d4f6005
8 changed files with 183 additions and 5 deletions
+9
View File
@@ -0,0 +1,9 @@
import { Toast } from "@base-ui/react/toast";
/** A toast manager created outside React so non-React code (the QueryClient
* MutationCache) can add toasts. Passed to <Toast.Provider toastManager=…>.
*
* Note: in @base-ui/react ^1.5 `createToastManager` is only exported through
* the `Toast` namespace (index.parts), not as a top-level named export of the
* `@base-ui/react/toast` subpath — importing it directly fails at runtime. */
export const toastManager = Toast.createToastManager();