Daniel Arantes Loverde
23d9752bfd
Almost done
2026-06-08 10:46:52 -03:00
Daniel Arantes Loverde
18818f909a
cards
2026-06-05 16:32:08 -03:00
Daniel Arantes Loverde
eae9613ed5
fix(checkout): display snackbar on top of sheet modals
2026-06-04 16:17:34 -03:00
Daniel Arantes Loverde
39ddf9c86c
fix(api): map API response error payload and validate card saving synchronously
2026-06-04 16:06:22 -03:00
Daniel Arantes Loverde
8c19b1323c
fix(payment): accept either 2-digit or 4-digit years in card expiry validation
2026-06-04 15:58:52 -03:00
Daniel Arantes Loverde
f49e4ea337
fix(payment): validate card expiry date month range and fix PaymentCardView character length
2026-06-04 15:48:00 -03:00
Daniel Arantes Loverde
2809131c25
fix(payment): move detectedBrandLogo computed property into correct scope inside PaymentCardView
2026-06-04 15:41:30 -03:00
Daniel Arantes Loverde
b633adad61
Merge branch 'feature/card-management' into feature/card-brand-logo
...
# Conflicts:
# pedi-foods/Sources/PediFoods/Views/Main/CheckoutView.swift
2026-06-04 15:38:50 -03:00
Daniel Arantes Loverde
c31875ec3b
fix(payment): set text field foreground color to brandDark for card input fields
2026-06-04 15:28:20 -03:00
Daniel Arantes Loverde
a319a8f534
feat(payment): add custom logo for PIX payment method
2026-06-04 15:27:15 -03:00
Daniel Arantes Loverde
46d955a92f
feat(payment): identify card brand and display logo dynamically
2026-06-04 15:23:02 -03:00
Daniel Arantes Loverde
ee8745553e
feat(payment): implement change payment method (PATCH /payment-method)
...
- ChangePaymentMethodPayload + ChangePaymentMethodResult models
- ApiService.changePaymentMethod()
- PixPaymentContext gains storeId + order data for payment switch
- PaymentPixView: Trocar button opens ChangePaymentSheet with 3 options
- ChangePaymentSheet: Novo PIX (new QR), Cartão (saved or new), Pagar na Entrega
- ChangePaymentCardSheet + ChangePaymentNewCardView with same card masks/validation
- OrdersView/OrderEntryDestinationView: threaded appState binding
2026-06-03 18:49:07 -03:00
Daniel Arantes Loverde
9525c19b6b
fix(cards): propagate API validation error message to user on card submit failure
2026-06-03 18:06:43 -03:00
Daniel Arantes Loverde
abd58ac36d
feat(cards): add input masks and char limits to card form fields
...
- Card number: groups of 4 digits (0000 0000 0000 0000), max 16 digits
- Expiry: MM/AAAA mask, max 6 digits
- CVV: digits only, max 4
- CPF: 000.000.000-00 mask, max 11 digits
- canSubmit validates stripped digit counts
2026-06-03 17:58:44 -03:00
Daniel Arantes Loverde
a548955320
fix(cards): replace NavigationStack header with custom X button, new card form opens as sheet
2026-06-03 17:44:10 -03:00
Daniel Arantes Loverde
6b397db494
feat(cards): implement full saved card management and transparent checkout
...
- ApiCardModels.swift: SavedCard, SaveCardPayload, CreditCardOrderPayload, etc.
- ApiOrderModels.swift: add savedCardId, clientCpfCnpj, creditCard, creditCardHolderInfo to CreateOrderPayload; Codable for item/addon payloads
- ApiService.swift: listCards, saveCard, updateCard, deleteCard, updateProfileCpf
- AppState.ProfileState: add cpf field
- CheckoutView: CardSelectionSheet (list saved cards + add new), rewrite PaymentCardView (submits order with card data), CardPaymentContext carries full order data
- CheckoutView+Logic: buildCreateOrderPayload accepts card params, new loadSavedCards/confirmOrderWithSavedCard/handleOrderResponse helpers, redirect credit card confirm to CardSelectionSheet
- OrdersView: CREDIT_CARD pending orders go to tracking (not card form, since card is now submitted with order)
- UserProfileView: CPF field with mask, save via PATCH /api/customer/profile
2026-06-03 17:32:30 -03:00
Daniel Arantes Loverde
2d27240cee
feat(checkout): replace dual payment group cards with single toggle switch
...
Toggle ON = Pagar Pelo App (default), shows in-app methods (PIX, Credit Card)
Toggle OFF = Pagar Na Maquininha, shows store machine methods
Automatically resets paymentMethod on toggle switch
Removes paymentGroupCard helper, saves vertical space
2026-06-03 15:49:26 -03:00
Daniel Arantes Loverde
c89c80e8d1
fix(store): replace pinnedViews with ZStack overlay to prevent EXC_BAD_ACCESS crash
...
pinnedViews + rapid state changes from stretchAmount every frame during overscroll
triggers SwiftUI memory corruption. ZStack overlay approach is crash-free:
- LazyVStack with no pinnedViews
- Inline tabs fade out when pinned threshold reached
- Overlay tabs (with safeAreaTop padding) fade in at top of ZStack
2026-06-03 15:20:44 -03:00
Daniel Arantes Loverde
82ab29388f
fix(store): revert non-image elements to original, stretch only cover image
2026-06-03 15:16:23 -03:00
Daniel Arantes Loverde
3e18c02f4d
fix(store): pin all non-image elements during overscroll bounce
...
Apply offset(y: -stretchAmount) to gradient, buttons, summaryCard, storeLogoBadge, and hard-cut rectangle so only the cover image stretches on pull-down
2026-06-03 15:09:17 -03:00
Daniel Arantes Loverde
1f2089772c
fix(store): separate gradient from cover image so only image stretches on overscroll
2026-06-03 15:03:54 -03:00
Daniel Arantes Loverde
d2189bb701
feat(store): stretch cover image on pull-down overscroll
...
- Remove max(0) clamp in ScrollOffsetReader to allow negative values during bounce
- Add stretchAmount computed var (max(0, -scrollOffset))
- Hero image frame grows by stretchAmount and offsets upward on overscroll
- isCategoryTabsPinned still uses max(0, scrollOffset) via >= check
2026-06-03 15:01:23 -03:00
Daniel Arantes Loverde
f51319b486
master merged
2026-06-03 14:52:27 -03:00
Daniel Arantes Loverde
0ebb854213
updates
2026-04-16 14:50:07 -03:00
Daniel Arantes Loverde
9bdb9dfdea
feat(android): complete first successful skip export
2026-03-20 10:56:22 -03:00
Daniel Arantes Loverde
cb7bfef356
fix(android): isolate platform-specific shared ui code
2026-03-19 16:11:07 -03:00
Daniel Arantes Loverde
c49725a5f7
backup
2026-03-19 08:44:31 -03:00
Daniel Arantes Loverde
5fa98ce358
Fixs
2026-03-10 09:19:50 -03:00
Daniel Arantes Loverde
728cc94525
Fix
2026-03-05 14:29:20 -03:00
Daniel Arantes Loverde
30f0327a53
fix content sizes
2026-03-05 11:09:47 -03:00
Daniel Arantes Loverde
a98089b48d
Fix
2026-03-05 11:00:17 -03:00
Daniel Arantes Loverde
83882538c2
feat(orders-ui): alinhar lista/detalhe ao layout e corrigir build
2026-03-05 10:23:04 -03:00
Daniel Arantes Loverde
1407f0b9de
Fix
2026-03-05 10:10:27 -03:00
Daniel Arantes Loverde
a8e3631177
feat(orders): separar reviews e criar detalhe de pedido
2026-03-05 10:10:03 -03:00
Daniel Arantes Loverde
56d6ff7223
feat(orders): separar pedidos de reviews e listar pendentes
2026-03-05 10:05:48 -03:00
Daniel Arantes Loverde
ca83a275ac
payment and list
2026-02-24 10:19:47 -03:00
Daniel Arantes Loverde
3a3dc7217b
Fix login
2026-02-21 18:51:39 -03:00
Daniel Arantes Loverde
0f5ad4c268
Payments
2026-02-15 08:18:06 -03:00
Daniel Arantes Loverde
d7b8b1864a
segregate files
2026-02-13 11:01:54 -03:00
Daniel Arantes Loverde
4a40936293
swipe to delete address
2026-02-12 18:39:02 -03:00
Daniel Arantes Loverde
c7740174d1
scroll sticked
2026-02-12 15:27:43 -03:00
Daniel Arantes Loverde
b027a10c8d
scroll stick
2026-02-12 15:05:09 -03:00
Daniel Arantes Loverde
38fc71718b
login flow
2026-02-12 09:44:40 -03:00
Daniel Arantes Loverde
3176b67914
Colapse fix
2026-02-09 14:41:18 -03:00
Daniel Arantes Loverde
54686397b9
Not has address
2026-02-07 17:16:45 -03:00
Daniel Arantes Loverde
92c2a67736
tabbar
2026-02-06 09:51:53 -03:00
Daniel Arantes Loverde
379bb35cfa
Remove shits
2026-02-05 17:01:43 -03:00
Daniel Arantes Loverde
51d02f6715
Login flow fixed
2026-02-05 16:57:27 -03:00
Daniel Arantes Loverde
01c1da0430
fix content space from header
2026-02-04 17:14:34 -03:00
Daniel Arantes Loverde
33fc111459
Login and Home
2026-02-04 16:55:29 -03:00