Conversation
waleedlatif1
commented
Mar 26, 2026
- fix(ui): polish subscription billing settings (fix(ui): polish subscription billing settings #3781)
- fix(blog): restore unoptimized prop on blog cover images (fix(blog): restore unoptimized prop on blog cover images #3782)
* fix(ui): polish subscription billing settings Made-with: Cursor * fix(ui): trigger purchase refresh on success Made-with: Cursor
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Polishes subscription billing settings UI and interactions: improves plan card layout/spacing, simplifies the billing details section styling, and hardens the “Add Credits” modal lifecycle by generating a fresh Written by Cursor Bugbot for commit c5fe925. Configure here. |
Greptile SummaryThis PR delivers two focused polish fixes: restoring the Key changes:
Confidence Score: 5/5Safe to merge — changes are targeted UI/UX fixes with no data-path or API logic risk. All five files contain straightforward, well-scoped changes. The blog fixes are a one-prop restore. The credit-balance refactor follows React best practices (ref-tracked timeout, useEffect cleanup, pending guard) and is functionally equivalent to the old path while being more robust. The subscription styling changes are purely cosmetic. No new API calls, state mutations, or branching logic are introduced. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Modal
participant purchaseCredits
participant closeTimeoutRef
User->>Modal: Click "Add Credits" (openModal)
Modal->>Modal: clearCloseTimeout()
Modal->>Modal: resetModalState()
Modal->>Modal: setRequestId(uuid) / setIsOpen(true)
User->>Modal: Enter amount & click Purchase
Modal->>purchaseCredits: mutate({ amount, requestId })
alt Purchase pending
User->>Modal: Try to close (ESC / backdrop)
Modal->>Modal: handleOpenChange(false) — isPending guard blocks close
end
purchaseCredits-->>Modal: onSuccess
Modal->>Modal: onPurchaseComplete?.()
Modal->>closeTimeoutRef: setTimeout(closeModal, 1500)
alt User closes manually before timeout
User->>Modal: Close action (isPending = false)
Modal->>closeTimeoutRef: clearCloseTimeout()
Modal->>Modal: closeModal() → resetModalState()
else Timeout fires
closeTimeoutRef-->>Modal: closeModal()
Modal->>Modal: setIsOpen(false) / resetModalState()
end
Note over Modal: useEffect cleanup clears timeout on unmount
Reviews (1): Last reviewed commit: "fix(blog): restore unoptimized prop on b..." | Re-trigger Greptile |