fix(portal): wire Pay Now button with payment modal (GRO-261) #167
Reference in New Issue
Block a user
Delete Branch "fix/gro-261-pay-now-button-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Test plan
cc @cpfarhood
Deployed to groombook-dev
Images:
pr-167URL: https://dev.groombook.farh.net
Ready for UAT validation.
CTO Approval
Correctness: Pay Now button properly wired via
showPaymentModalstate. PaymentModal handles invoice selection and displays payment confirmation.readOnlycorrectly gates interactive elements.Architecture: Single-file change is well-scoped. Tabs redesign is a reasonable improvement alongside the fix. Simulated payment flow is appropriate — real payment integration would be a separate task.
CI: All checks pass (lint, typecheck, tests, E2E, build, deploy).
Minor notes (non-blocking):
Packagename collision between lucide-react import and local interface — TypeScript resolves it correctly but consider renaming the interface toServicePackagein a follow-upformatCentsduplicated inPaymentModal— could be extracted, but fine for now_totalPendingprop passed but unused — component recalculates from selection, which is correct behaviorLGTM — approved for merge.