Batch or immediate save
Choose one mental model and make it visible. Do not mix silent automatic saves with an unexplained Save button.
Make drafts visible, save changes together, and preserve work after a failure.
Use when people edit several records or board cards before committing a batch, such as a service queue, project plan or review checklist.
Select a state to see what the interface should communicate. These are illustrative snapshots; try the live component below.
2 unsaved changes
Show that edits are local. Keep the save action near the work and explain what will be included.
Try the working example ↓Waiting for the application to confirm
Prevent overlapping requests. Keep the draft visible while waiting; a request starting does not mean it succeeded.
Try the working example ↓The application accepted both updates.
Use the server response as the saved state. Announce completion without moving focus away from the task.
Try the working example ↓Your 2 edits are still available.
Preserve the draft and show a useful reason. Mark record-level errors so the person can correct the affected item.
Try the working example ↓Edit a card, move it to a different column, then save the changes. Try the rejection option and confirm that the pending edits remain available. Demo changes are not stored permanently.
Choose one mental model and make it visible. Do not mix silent automatic saves with an unexplained Save button.
If another person changed the same record, explain the conflict and offer a recovery path. Do not silently overwrite.
Keep the draft where practical, or warn before discarding unsaved work.
The examples demonstrate interaction using sample data. Your application owns the real records, permissions and persistence.