Commit Graph

819 Commits

Author SHA1 Message Date
parsa aghaei
d3fc197224 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m0s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-13 08:57:55 +03:30
parsa aghaei
e7ded849f6 fix(cart): hide prices, discount coupon, and totals in cart when prices are disabled in catalog mode
Some checks failed
Deploy Canina / deploy (push) Successful in 2m21s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-13 08:57:44 +03:30
parsa aghaei
7c94ff5d6b Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m15s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-13 08:49:20 +03:30
parsa aghaei
ef0731ffac fix(storefront): remove inquiry price everywhere and fix mobile add to cart button visibility
Some checks failed
Deploy Canina / deploy (push) Successful in 3m41s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-13 08:49:06 +03:30
parsa aghaei
ddfead6e60 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m15s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-13 07:45:13 +03:30
parsa aghaei
8e4ee9849c fix(catalog): fix mobile navigation, catalog preorder priority, admin settings and buybox
Some checks failed
Deploy Canina / deploy (push) Successful in 3m37s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s
2026-09-13 07:44:55 +03:30
e93a327219 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m18s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 8s
2026-09-12 23:35:51 +03:30
01b4ae8aa5 feat(catalog): fix catalog mode toggles, cart persistence, preorder btn, and dashboard visibility controls 2026-09-12 23:35:48 +03:30
3261a8341c feat(catalog): fix catalog mode toggles, cart persistence, preorder btn, and dashboard visibility controls
Some checks failed
Deploy Canina / deploy (push) Successful in 4m26s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 9s
2026-09-12 23:34:01 +03:30
parsa aghaei
aa5b35eff8 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 48s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s
2026-09-08 12:57:47 +03:30
parsa aghaei
1fff11ee4f feat(api-keys): add api keys management and authentication for n8n workflows
Some checks failed
Deploy Canina / deploy (push) Successful in 3m11s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 9s
2026-09-08 12:57:32 +03:30
parsa aghaei
011a33a9bd Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m1s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 12:00:48 +03:30
parsa aghaei
ba9472c938 fix(home): fix mobile slider vertical scroll chaining, unify view-all headers, and enhance CTA and navigation cards
Some checks failed
Deploy Canina / deploy (push) Successful in 2m23s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 12:00:41 +03:30
parsa aghaei
e0600a3bcb Merge branch 'develop'
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:56:46 +03:30
parsa aghaei
49eb1e5ff3 fix(catalog,footer): resolve catalog footer white gap, refine mobile footer layout and improve micro-scrollbar contrast
Some checks failed
Deploy Canina / deploy (push) Successful in 2m25s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:56:40 +03:30
parsa aghaei
c928f5ed66 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m2s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:42:20 +03:30
parsa aghaei
c5d975e0c7 feat(catalog): add breadcrumb, back button, micro-scrollbar and eliminate white gap
Some checks failed
Deploy Canina / deploy (push) Successful in 2m25s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:42:10 +03:30
parsa aghaei
bb70d512c2 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m2s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:36:47 +03:30
parsa aghaei
81b16e4c62 feat(footer): add expandable read-more and read-less with gradient fade for SEO brand text
Some checks failed
Deploy Canina / deploy (push) Successful in 2m17s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:36:40 +03:30
parsa aghaei
664551ae63 Merge branch 'develop'
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:34:43 +03:30
parsa aghaei
1ea9920914 fix(layout): remove pb-16 gap from main container above footer
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:34:35 +03:30
parsa aghaei
3294583862 Merge branch 'develop'
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:32:11 +03:30
parsa aghaei
87d47d1a0b style(footer): optimize mobile layout to be compact, elegant, and space-efficient
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:31:59 +03:30
parsa aghaei
ca4876bf01 Merge branch 'develop'
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:29:10 +03:30
parsa aghaei
5bddfd84ce feat(home): mobile 1.5 card slider with refined micro-scrollbar for video & blog sections
Some checks failed
Deploy Canina / deploy (push) Successful in 2m22s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:29:03 +03:30
parsa aghaei
91050ae491 Merge branch 'develop'
Some checks failed
E2E Playwright Tests / Run Full E2E & Security Suites (push) Waiting to run
Deploy Canina / deploy (push) Has been cancelled
2026-09-06 11:25:29 +03:30
parsa aghaei
01a538ca5a feat(home): mobile 1.5 card horizontal slider with scrollbar for featured products
Some checks failed
Deploy Canina / deploy (push) Successful in 2m21s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:25:21 +03:30
parsa aghaei
0c5d06b11b Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m4s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:21:08 +03:30
parsa aghaei
881f75a372 refactor(mobile): refine bottom nav tabs, hardware back dismissal, and live shop search
Some checks failed
Deploy Canina / deploy (push) Successful in 2m26s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 11:20:47 +03:30
parsa aghaei
d9ef7a2782 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m6s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 10:45:50 +03:30
parsa aghaei
1c98f1bfa3 feat(mobile): app-like bottom navigation, mobile top logo ticker, and header optimization
Some checks failed
Deploy Canina / deploy (push) Successful in 2m31s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 10:45:30 +03:30
parsa aghaei
016f22149d Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m7s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 10:31:13 +03:30
parsa aghaei
808b5c58d4 style(shop): refine mobile filter action sheets, spacing, and micro scrollbar
Some checks failed
Deploy Canina / deploy (push) Successful in 2m28s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 10:30:54 +03:30
parsa aghaei
a8a08488d9 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m10s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 09:30:15 +03:30
parsa aghaei
a9fbcbb90c feat(shop): mobile filter slider, list/card view toggle, and breadcrumb fixes
Some checks failed
Deploy Canina / deploy (push) Successful in 2m31s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-06 09:30:02 +03:30
parsa aghaei
d3d13218fd Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 43s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:49:58 +03:30
parsa aghaei
026c5b9086 fix(sms): update default OTP pattern template to WebOTP format
Some checks failed
Deploy Canina / deploy (push) Successful in 2m4s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:49:45 +03:30
parsa aghaei
5118ae9259 docs(sms): update OTP pattern variable guidance for repeated {0} WebOTP pattern
Some checks failed
Deploy Canina / deploy (push) Successful in 53s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:47:12 +03:30
parsa aghaei
6091bfa328 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m6s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:43:42 +03:30
parsa aghaei
f81aabb479 fix(seo): prevent duplicate brand affixes in page titles and add checkout success metadata
Some checks failed
Deploy Canina / deploy (push) Successful in 2m30s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:43:28 +03:30
parsa aghaei
b72e753434 Merge branch 'develop'
Some checks failed
Deploy Canina / deploy (push) Successful in 2m20s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
2026-09-05 19:37:30 +03:30
parsa aghaei
c57f775cb4 fix(otp): support WebOTP sms pattern with {0} and {1} and robust code extraction
Some checks failed
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
Some checks failed
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
Some checks failed
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)
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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