Vnext-81889 | | Name fields for in-person Pickup#1409
Vnext-81889 | | Name fields for in-person Pickup#1409pagrawal1-godaddy wants to merge 3 commits into
Conversation
🦋 Changeset detectedLatest commit: b801042 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The default checkout session starts on shipping, so pickup name inputs only render after choosing local pickup. Co-authored-by: Cursor <cursoragent@cursor.com>
wcole1-godaddy
left a comment
There was a problem hiding this comment.
Requesting changes for three reproduced pickup regressions and failing local quality gates.
- Editing required pickup names can clear an existing paid-order billing address.
- Immediate confirmation can occur before the debounced name update reaches the draft order.
- Paid card/ACH pickup renders duplicate billing-name controls.
- The package typecheck fails, and
biome check ./srcreports six errors in changed files.
The existing 447 React tests and GitHub CICD/CodeQL checks pass, so please add regressions for address preservation, a single rendered name field, and immediate-submit persistence. Since this is an OSS package, please also complete the PR Summary and Test Plan with consumer-facing context.
|
|
||
| return ( | ||
| <div className='space-y-4'> | ||
| <AddressForm sectionKey='billing' onlyNames /> |
There was a problem hiding this comment.
[P1] Preserve paid-pickup billing addresses when syncing these names. AddressForm's onlyNames mode maps the update with address: null; now that this component is used for every pickup order, editing first/last name clears an existing billing address. I reproduced an UpdateCheckoutSessionDraftOrder payload with billing.address === null. Please use a names-only sync that omits address when paid pickup still collects a billing address.
| { key: 'billingLastName', message: t.validation.enterLastName }, | ||
| ]; | ||
|
|
||
| // Pickup orders always require customer name (collected in Pickup section). |
There was a problem hiding this comment.
[P1] Ensure required pickup names are persisted before confirmation. The onlyNames form waits for its local debounce before enqueuing another delayed draft-order patch, while checkout flushing drains only already-enqueued patches. Typing names and immediately clicking Complete Order produced a confirmation with no preceding draft-order update, so the server still sees blank or stale names. Please queue or send the current billing names synchronously in the standard and express submit paths.
| <AddressForm | ||
| sectionKey='billing' | ||
| onlyNames={shouldShowBillingNamesOnly} | ||
| hideNames={isPickup && isBillingAddressRequired} |
There was a problem hiding this comment.
[P2] This only hides names from PaymentForm's generic billing form. CreditCardContainer and GoDaddyACHForm each render their own <AddressForm sectionKey='billing'>, so paid pickup currently renders two controls named billingFirstName/billingLastName (reproduced count: 2). Please apply the pickup hideNames behavior to those inline-billing forms as well.
| ...stripeOnlyPaymentMethods(), | ||
| card: null as never, | ||
| offline: { | ||
| type: PaymentMethodType.OFFLINE, |
There was a problem hiding this comment.
[P2] Remove or type-correct this property. The offline payment-method shape only accepts processor and checkoutTypes, so this addition makes pnpm --filter @godaddy/react typecheck fail with TS2353.
Summary
Changeset
Test Plan