Description
Build a full duplicate/clone flow for invoices: a Duplicate button on the detail page, navigation to a pre-filled create form, field-level validation showing what changed vs the original, detection of conflicting deadlines, and optimistic UI feedback while the clone transaction is in-flight.
Acceptance Criteria
Context
Description
Build a full duplicate/clone flow for invoices: a Duplicate button on the detail page, navigation to a pre-filled create form, field-level validation showing what changed vs the original, detection of conflicting deadlines, and optimistic UI feedback while the clone transaction is in-flight.
Acceptance Criteria
/invoice/[id]only for the invoice creator (hide for all other wallets)/invoice/newwith all original fields pre-populated via URL state or query params (recipients, amounts, token, options)Cloned from #IDbanner linking back to the original"Changed from original"now + 1 hour, form shows inline error"Deadline must be at least 1 hour in the future"and blocks submissioncloneInvoiceSDK method; button shows spinner and"Cloning..."text during submission"Invoice #NEW_ID created"and navigates to/invoice/NEW_IDContext
src/app/invoice/[id]/page.tsxsrc/app/invoice/new/page.tsxcloneInvoicefrom split-sdk issue Build invoice push notifications #6