pelagia-portal/App/components/po
Claude (auto-fix) 61345dd7b7 feat(po): prompt to save as draft when leaving with unsaved changes
Both the PO create and edit screens now guard against accidental loss of
in-progress data. While a form has unsaved changes:

- in-app link clicks and the edit screen's Cancel button are intercepted,
  showing a dialog offering Save as Draft / Discard changes / Stay on page
- hard unloads (reload, tab close, external navigation) trigger the browser's
  native warning via beforeunload

"Save as Draft" reuses the existing draft-save action; validation errors are
surfaced in the dialog so the user can recover or discard. Dirty state is
tracked from any field edit, line-item change, or attachment change.

Adds useUnsavedChanges hook + UnsavedChangesDialog component and unit tests.

Fixes #18

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 05:17:32 +05:30
..
discard-draft-button.tsx chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
file-uploader.tsx chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
po-detail.tsx fix(po-detail): show approval date as PO date on detail screen 2026-06-19 03:39:19 +05:30
po-line-items-editor.tsx fix(line-items): portal dropdown to escape overflow, hide scrollbar 2026-05-31 02:23:39 +05:30
po-status-badge.tsx chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
submit-draft-button.tsx chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
unsaved-changes-dialog.tsx feat(po): prompt to save as draft when leaving with unsaved changes 2026-06-19 05:17:32 +05:30
use-unsaved-changes.ts feat(po): prompt to save as draft when leaving with unsaved changes 2026-06-19 05:17:32 +05:30