More than one button
Save, publish, delete, cancel, and back actions can share a form while keeping behavior clear.
One typed flow for pending states, confirmations, success, errors, and cancellation. Bring your form library. Keep your UI.
idleflow.pendingAction—Write the action once. Your components get useful state and thoughtful feedback automatically.
const flow = useSubmitFlow({
save: {
run: async (values) => saveProfile(values),
pendingLabel: 'Saving…',
success: 'Profile saved.',
},
})Save, publish, delete, cancel, and back actions can share a form while keeping behavior clear.
Confirm a change, keep the dialog open while it saves, then show success or a clear error.
Bring native forms, React Hook Form, your API client, and your existing visual system.
React is the required peer. No extra dialog, toast, or form-state package is pulled into your app.
See the dependency details →