User story / Problem statement
Currently EndPendingGrant and CancelGrant each own their write, toast, error and close, stay dismissible mid-submission, and close over values derived outside them. Six review fixes across four waves on PR #197 all landed on that one arrangement.
Expected outcome
Dismissing a confirm dialog over the wallet prompt has no bearing on the submission it started, and whether a dialog is mounted stops being something a write path reasons about.
Acceptance criteria
Alternatives considered
Make the dialog non-dismissible while submitting. Rejected once already: a user cannot see past the wallet prompt, so dismissing it is worth keeping.
Technical notes
The split today: pages/PendingGrants/index.tsx holds endingCids, the refresh and the list; the dialogs hold submitting, the toast and the close. dapp/frontend runs no DOM tests, so review and the manual loop are the verification.
Additional context
Follow-on from PR #197 (#181), under epic #157, whose history holds the six fixes.
User story / Problem statement
Currently
EndPendingGrantandCancelGranteach own their write, toast, error and close, stay dismissible mid-submission, and close over values derived outside them. Six review fixes across four waves on PR #197 all landed on that one arrangement.Expected outcome
Dismissing a confirm dialog over the wallet prompt has no bearing on the submission it started, and whether a dialog is mounted stops being something a write path reasons about.
Acceptance criteria
EndPendingGrantandCancelGranttake props and emitonConfirm, holding no submission stateonScreenref, or any other mounted-check, survives in either dialogpnpm -C dapp/frontend testandpnpm -C dapp/frontend typecheckpassAlternatives considered
Make the dialog non-dismissible while submitting. Rejected once already: a user cannot see past the wallet prompt, so dismissing it is worth keeping.
Technical notes
The split today:
pages/PendingGrants/index.tsxholdsendingCids, the refresh and the list; the dialogs holdsubmitting, the toast and the close.dapp/frontendruns no DOM tests, so review and the manual loop are the verification.Additional context
Follow-on from PR #197 (#181), under epic #157, whose history holds the six fixes.