The primary button reads 'Send Contract' or 'Re-send Contract' depending on status. First sends skip confirmation entirely and close the modal on success. Re-sends open a confirmation dialog and, on success, keep the modal open showing the sent state and a 'Contract re-sent — emailed to …' notice.
Also called: accidental double send · sent the contract twice · resend contract
- 1alreadySent = status is 'sent' or either signature exists.
- 2onPrimaryClick() opens confirmResend when alreadySent, otherwise calls doSend() directly.
- 3First send: onSent() fires for the parent to refresh, then the modal closes — 'The modal disappearing + the funnel row ticking over is the confirmation.'
- 4Re-send: stays open — 'no surprise close on a deliberate re-send'.
The component states the asymmetry as intentional: the confirm step is 'Only reachable when the contract was ALREADY sent — first sends skip this entirely. Prevents an accidental double-send to a customer already awaiting signature.' Confirming every send would train people to click through the dialog, which defeats it.
- Duplicate contract notifications to a waiting customer
- Confirmation fatigue from asking on every send
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →