parsa aghaei
c57f775cb4
fix(otp): support WebOTP sms pattern with {0} and {1} and robust code extraction
Deploy Canina / deploy (push) Successful in 3m53s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:36:49 +03:30
parsa aghaei
9e9bf6155d
merge: fix WebOTP OTP fill bug from develop
Deploy Canina / deploy (push) Successful in 2m3s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 18:41:13 +03:30
parsa aghaei
1fd9a92dd0
fix: restore WebOTP with root-cause fix for code not filling into OTP inputs
...
Deploy Canina / deploy (push) Successful in 2m23s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
The original bug was that the WebOTP effect had [subView, triggerVerifyOtp]
as its dependency array. triggerVerifyOtp is a useCallback that depends on
[fetchProfile, onClose] - both of which can change reference during normal
re-renders. Each reference change caused React to re-run the effect, which
called AbortController.abort() on the still-pending OTP Promise. The user
would see the 'Allow' modal, click Allow, but the Promise was already aborted
so nothing happened.
Fix: use triggerVerifyOtpRef (a stable ref) so the WebOTP effect only depends
on [subView] / [step]. The ref is kept up-to-date via a dedicated sync effect.
Additional improvements:
- 400ms delay before auto-verify so user can see the filled boxes
- toEnglishDigits on otp.code to handle Persian numerals in the response
- Same fix applied to LoginModal (handleVerifyOtpWithCode -> verifyOtpRef)
2026-09-05 18:41:05 +03:30
parsa aghaei
8cf056c661
merge: mobile UX improvements from develop (scroll restoration, OTP, swipe, back button)
Deploy Canina / deploy (push) Successful in 2m4s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 18:19:29 +03:30
parsa aghaei
86e8101d8c
fix: mobile UX improvements - scroll restoration, OTP autofill, swipe direction, back button
...
Deploy Canina / deploy (push) Successful in 2m27s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
- ClientLayout: implement proper manual scroll restoration using module-level
_wasPopNavigation flag and sessionStorage. Fixes scroll jumping to top/bottom
on Back navigation. Scroll position saved on scroll (debounced) and cleanup,
restored via double-rAF on popstate navigation.
- AuthModal/LoginModal: fix Android back button to push only ONE history sentinel
on modal open (not on every subView/step change). Prevents stacking of extra
history entries. Back in sub-views re-pushes sentinel for next back press.
- AuthModal/LoginModal: remove navigator.credentials.get (WebOTP API) which was
showing an intrusive permission modal. The native autoComplete=one-time-code
on the first OTP input provides the suggestion bar above the keyboard instead.
- AuthModal/LoginModal: add isVerifyingRef guard to prevent double toast on
successful login. Both onComplete callback and form submit were calling
triggerVerifyOtp/handleVerifyOtpWithCode simultaneously.
- AuthModal: remove triggerVerifyOtp from handleOtpChange to eliminate the second
duplicate call (only onComplete now triggers verification).
- OtpInput5: remove maxLength=1 restriction from first input so browser can
inject the full 5-digit OTP code. Multi-char input is already handled by
handleDigitChange which distributes digits across all boxes.
- ProductPage: fix swipe gesture direction in media gallery. Swipe right -> next
item, swipe left -> previous item (matches RTL intuition for Persian users).
2026-09-05 18:19:11 +03:30
parsa aghaei
1d2d141514
fix(mobile): improve scroll restoration, media gesture swipe, 5-digit otp, persistent cooldown and modal android back navigation
Deploy Canina / deploy (push) Successful in 2m6s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 17:53:29 +03:30
parsa aghaei
00cfd1a2a0
feat(catalog): redesign digital catalog spread with luxury European apothecary layout and mobile gesture navigation
Deploy Canina / deploy (push) Successful in 2m1s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 17:16:35 +03:30
parsa aghaei
30fb8f3e83
fix(frontend): enhance species badges, smart symptom matching, and sync charity total
Deploy Canina / deploy (push) Successful in 2m5s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 16:37:35 +03:30
parsa aghaei
330d960502
fix(admin): resolve TypeScript errors and unused variables in SmsSettingsPage
Deploy Canina / deploy (push) Successful in 32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 15:40:03 +03:30
parsa aghaei
29f5122f14
chore(graphify): update knowledge graph
Deploy Canina / deploy (push) Successful in 2m23s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 15:16:28 +03:30
parsa aghaei
2c377cab88
fix(app): improve wallet history display, fix order details modal layout and lint errors
2026-09-05 15:16:20 +03:30
parsa aghaei
56e8029fff
feat(admin): update order management and SMS rules settings UI with lint fixes
2026-09-05 15:16:12 +03:30
parsa aghaei
5e3e3958c5
feat(backend): add wallet refund transactions and enhance SMS automation rules
2026-09-05 15:16:04 +03:30
parsa aghaei
e15c25dae1
feat(sms): add WALLET_CHARGED sms trigger for online topup, manual admin credit, refund, and cashback
Deploy Canina / deploy (push) Successful in 43s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 14:06:23 +03:30
parsa aghaei
7093978e27
feat(sms): fire ORDER_SHIPPED only on shipped status with courier fallback, add tracking modal in orders, and user search picker in sms recipient
Deploy Canina / deploy (push) Successful in 2m13s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 11:57:41 +03:30
parsa aghaei
4be51741e0
feat(order): store structured json address and render cleanly in admin modal
Deploy Canina / deploy (push) Failing after 7s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 3s
2026-09-05 11:35:07 +03:30
parsa aghaei
9e3ea3a1b1
fix(order): robust shipping address extraction for sms and enable address editing in checkout
Deploy Canina / deploy (push) Failing after 7s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 3s
2026-09-05 11:19:26 +03:30
parsa aghaei
174a2f8cab
feat(sms): sync tabs with url, add trigger duplicate, order created variables, fix default tab
Deploy Canina / deploy (push) Failing after 7s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 3s
2026-09-05 10:57:30 +03:30
parsa aghaei
09c8588401
feat(sms): display full rendered SMS body in logs, streamline pattern triggers tab and remove legacy assignment dropdown
Deploy Canina / deploy (push) Failing after 7s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 30s
2026-09-05 09:38:51 +03:30
parsa aghaei
2f41d4afe7
fix(sms): parse melipayamak xml pattern tags and add search filter in admin panel
Deploy Canina / deploy (push) Successful in 2m13s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-05 09:21:01 +03:30
parsa aghaei
99e726b08b
fix(admin,sms,ui): resolve LTR input icon overlap, clarify melipayamak pulses credit and update UI texts
Deploy Canina / deploy (push) Successful in 3m51s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-05 09:09:36 +03:30
parsa aghaei
52cc601345
feat(sms): implement dynamic multi-recipient SMS automation rules with custom patterns and variable mapping
Deploy Canina / deploy (push) Successful in 46s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-05 08:26:24 +03:30
parsa aghaei
c247f21d83
perf: defer 3rd-party analytics, optimize responsive image sizes, and prioritize LCP hero banner
Deploy Canina / deploy (push) Successful in 2m2s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 16:38:04 +03:30
parsa aghaei
379fc1bb77
fix(images): route Next.js Image Optimization to remote backend and eliminate hydration mismatch
Deploy Canina / deploy (push) Successful in 2m5s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 8s
2026-09-02 16:22:16 +03:30
parsa aghaei
08ad51152f
feat(images): enable Next.js image optimization with complete upstream buffer retrieval and explicit MIME types
Deploy Canina / deploy (push) Successful in 2m4s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 16:14:33 +03:30
parsa aghaei
89e59c8427
fix(images): ensure unoptimized direct serving for uploads proxy routes to prevent 400 bad request
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 16:10:52 +03:30
parsa aghaei
3aaea0062b
perf: optimize font payloads, enable responsive image optimization for uploads, and set high priority on top hero/product images
Deploy Canina / deploy (push) Successful in 2m14s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 15:54:12 +03:30
parsa aghaei
00839017ff
feat(products): remove mock static fallbacks and add dynamic specialist recommendation management in database and admin panel
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 15:50:01 +03:30
parsa aghaei
1ca06d5740
fix(images): restore unoptimized true for direct upload proxy serving and fix React 418 hydration mismatch
Deploy Canina / deploy (push) Successful in 2m5s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 9s
2026-09-02 15:36:03 +03:30
parsa aghaei
e081441c22
perf(images): enable Next.js image optimization with fast internal docker proxy routing and clean button text SSR
Deploy Canina / deploy (push) Successful in 2m2s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 15:27:41 +03:30
parsa aghaei
0ff9a6b886
perf(mobile): eliminate 0.6 CLS by removing initial motion transforms from above-the-fold Hero, and fix footer h3 hierarchy
Deploy Canina / deploy (push) Successful in 2m4s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 15:12:46 +03:30
parsa aghaei
5e6e25390e
fix(images): restore direct upload loading to fix 502, fix StatCounter CLS and SmartAdvisor button contrast
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 15:09:54 +03:30
parsa aghaei
062718fb84
perf(mobile): add cart aria-label, fix heading levels h3, and remove duplicate font network chains
Deploy Canina / deploy (push) Successful in 2m2s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 8s
2026-09-02 14:21:11 +03:30
parsa aghaei
98e20269a3
perf(storefront): optimize LCP image delivery, lazy-load scripts, improve WCAG contrast and accessibility
Deploy Canina / deploy (push) Successful in 2m1s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 8s
2026-09-02 14:16:07 +03:30
parsa aghaei
b766b01713
fix(settings): include Google & Clarity tracking keys in getCategorySetting('seo') response
Deploy Canina / deploy (push) Successful in 32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 13:50:21 +03:30
parsa aghaei
0b37825094
feat(seo): add sitemaps, RSS feeds, robots.txt, and Torob crawler endpoints directory to SeoSettingsPage
Deploy Canina / deploy (push) Successful in 32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 13:32:33 +03:30
parsa aghaei
83c19903ab
feat(seo): add smart script extraction and preview for GTM, GA4, Clarity, and GSC
Deploy Canina / deploy (push) Successful in 32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 13:28:06 +03:30
parsa aghaei
3344fe7f8d
feat(admin): add confirmation modal before applying bulk price adjustments and margins
Deploy Canina / deploy (push) Successful in 33s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 13:11:51 +03:30
parsa aghaei
ceaab10fdd
feat(admin): add comprehensive product attributes management and dynamic analysis table
Deploy Canina / deploy (push) Successful in 2m18s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 12:09:57 +03:30
parsa aghaei
68840fbdf2
fix(admin-panel): import missing Thermometer, AlertTriangle, and Sparkles icons in Products.tsx
Deploy Canina / deploy (push) Successful in 34s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 11:58:29 +03:30
parsa aghaei
9744aa814f
fix: make product key highlights and FAQs purely dynamic based on admin inputs without hardcoded fallbacks
Deploy Canina / deploy (push) Successful in 2m6s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 11:51:35 +03:30
parsa aghaei
f0457b5748
feat: complete Google Search Console and Analytics integration across admin panel and storefront
Deploy Canina / deploy (push) Successful in 2m14s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-02 11:34:10 +03:30
parsa aghaei
1fb5de764c
chore: format admin.service.ts with prettier and eslint
Deploy Canina / deploy (push) Successful in 2m10s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 11:10:33 +03:30
parsa aghaei
101611d8a7
feat: complete product management with dynamic FAQs, PAO, storage conditions, safety guidelines and key highlights
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 11:09:18 +03:30
parsa aghaei
ddd0dcbab6
fix(backend): clean unused var in admin.service.ts
Deploy Canina / deploy (push) Successful in 32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 11:00:50 +03:30
parsa aghaei
a7d842ba10
chore(clean): pass all lint, typecheck and build checks with zero errors
Deploy Canina / deploy (push) Successful in 35s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 10:57:21 +03:30
parsa aghaei
6fa1f2c906
feat(admin): add full-size image preview lightbox modal on product image click in products list
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 10:54:16 +03:30
parsa aghaei
3cbcad7b65
feat(seo,ux,cro): enhance product page with JSON-LD @graph schemas, above-the-fold CRO highlights, PAO/storage badges, and dynamic reviews
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 10:51:48 +03:30
parsa aghaei
517d611b2a
fix(ui): ensure 100% solid white background and higher z-index for ingredient wiki tooltip
Deploy Canina / deploy (push) Successful in 2m13s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-02 10:45:00 +03:30
parsa aghaei
2a501637cb
fix(pricing): persist pricing_config on applyGlobalMargins and fix nullish coalescing in settings
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
Deploy Canina / deploy (push) Has been cancelled
2026-09-02 10:42:33 +03:30