Founding price: $35, then $79.99 after 23:59 UTC on 4 November, then $79.99
Get ProA contextual save bar that appears when a form is dirty: Save and Discard actions, Cmd/Ctrl+S, a polite announcement, a save error, and a hook that warns before the tab closes.
This item has no props to tune. Use the lens above to change theme, density, direction and more.
position="sticky" keeps the bar at the bottom of its scrolling container; use fixed for the viewport and inline to place it yourself. useUnsavedChangesWarning(dirty) is exported for forms that have their own bar.
| Prop | Type | Default | Description |
|---|---|---|---|
dirty | boolean | - | Show the bar. |
onSave | () => void | Promise<void> | - | Throw to show the error. |
onDiscard | () => void | - | Reset the form. |
message | ReactNode | You have unsaved changes | |
position | sticky, fixed, inline | sticky | |
warnOnUnload | boolean | true | Browser prompt when the tab closes. |
saveShortcut | boolean | true | Cmd/Ctrl+S while dirty. |
region named "Unsaved changes", reachable with landmark navigation. A separate live region (role="status", always mounted) announces the first change and any save error without moving focus.prefers-reduced-motion.The component ships with a Testing Library test (unsaved-changes-bar.test.tsx) that covers: its main behaviour, the keyboard path and the error or empty states.