Commit Graph
10 Commits
Author SHA1 Message Date
isaacclad f88d50f24c Open Paystack from the Pay click gesture, not after fetch.
Deploy Ladill QR Plus / deploy (push) Successful in 47s
Paystack blocks iframes, so checkout uses a popup beside the sheet/modal chrome. Opening about:blank on the user tap keeps that window from being blocked after the async initiate response.
2026-07-21 18:14:04 +00:00
isaacclad 2b3568695b Present Paystack checkout in a responsive mobile sheet and desktop modal.
Deploy Ladill QR Plus / deploy (push) Successful in 1m58s
Standardize customer-facing Ladill Pay checkout shells across products, open them on all viewports, and escape iframe callbacks back to the product flow.
2026-07-21 16:50:07 +00:00
isaaccladandCursor 27e0aaea87 Propagate shared copy-button component and clipboard helper.
Deploy Ladill QR Plus / deploy (push) Successful in 42s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 23:04:26 +00:00
isaaccladandCursor 3345d9e498 Use + icon buttons on mobile dashboards.
Deploy Ladill QR Plus / deploy (push) Successful in 26s
Sync mobile-header-btn partials, mobile x-btn.create, and update dashboard header actions for consistent mobile FABs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 16:23:12 +00:00
isaaccladandClaude Opus 4.8 73faa20fff Two-step add-funds modal instead of wallet redirect on insufficient balance
Deploy Ladill QR Plus / deploy (push) Successful in 40s
When a user hits an action they can't afford (e.g. creating a QR code with
0/low balance), open an in-app two-step modal instead of bouncing them to the
central wallet page. Step 1 explains pay-as-you-go billing + shows the action
cost and current balance; step 2 takes an amount and starts a Paystack checkout
via the central identity wallet-topup API, returning the user where they were.

- service-topup-modal: rebuilt as two-step (billing explainer -> amount/pay)
- IdentityClient::walletTopup + WalletTopupController + POST /wallet/topup
- balanceGate.openTopup / qrCustomizer.redirectTopup now prefer the modal,
  falling back to the wallet page only when no modal is wired
- qr-codes index + create render the modal and open it on insufficient balance

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 23:25:06 +00:00
isaaccladandCursor e8e5f94bb8 Unify primary buttons with gradient pill design across the app.
Deploy Ladill QR Plus / deploy (push) Successful in 31s
Add shared btn-primary components and plus icons on create/new actions for a consistent Ladill UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 22:49:42 +00:00
isaaccladandCursor f7d79809b4 Replace native confirm() dialogs with styled confirm modals.
Deploy Ladill QR Plus / deploy (push) Successful in 27s
Add shared confirm-dialog component, Alpine ladillConfirm store, and
swap browser confirms for consistent bottom-sheet modals across user,
admin, and hosting flows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 21:10:58 +00:00
isaaccladandCursor 40981be252 Add mobile topbar titles and show Afia on all mobile headers.
Deploy Ladill QR Plus / deploy (push) Successful in 33s
Route-based subtitle and page titles replace plain app labels in mobile topbars, and the Afia AI button is visible on mobile across topbars and mobile-page-header screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 16:30:16 +00:00
isaaccladandCursor 5fb2de31c8 Add mobile and desktop search for QR Plus.
Deploy Ladill QR Plus / deploy (push) Successful in 40s
Introduce a dedicated /search page, wire the bottom nav and topbar to it, and expose JSON results for live lookup of QR codes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 15:37:58 +00:00
isaaccladandCursor cd6571f199 Extract Ladill QR Plus as standalone app at qr.ladill.com.
Deploy Ladill QR Plus / deploy (push) Failing after 1s
Utility QR types only (URL, WiFi, link list, business, app download) with
SSO, Billing API integration, public /q resolver, and qr-plus:import for
platform migration. vCard and commerce types stay on the platform.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-06 21:31:24 +00:00