Skip to content

v2026.5.18 - i18n country selector, media polish, Vite 8 + dep upgrades#389

Merged
hta218 merged 34 commits into
mainfrom
dev
May 18, 2026
Merged

v2026.5.18 - i18n country selector, media polish, Vite 8 + dep upgrades#389
hta218 merged 34 commits into
mainfrom
dev

Conversation

@hta218
Copy link
Copy Markdown
Member

@hta218 hta218 commented May 18, 2026

What's in this release

New features

  • Add language variants for multi-lingual countries (b662bff)
  • Group country selector by country with stacked language links (e57b513)
  • Add more market locales and sort countries by name (90270f4)
  • Add delayed content fade to hero video — content hides after 1.5s hover (8de8ebb)

Bug fixes

  • Fix stale checkout total when removing a cart line item (74df2b3)
  • Upgrade react-player to v3 to fix Vite 8 ESM interop crash in Hero Video (cbc915c)

Improvements

  • Round product media corners in gallery and zoom modal (a438f0e)
  • Adjust country selector flag sizes and default to full country name (3ceff12)
  • Update default theme settings and shorten cart button labels (ace03ed)
  • Adjust arrow button positioning in Swimlane component (7818d69)
  • Update Swimlane component width for snap scrolling behavior (3edbc33)
  • Adjust IntersectionObserver threshold and ref type for ScrollReveal (ddd6bdb)
  • Use responsive spacing values in hero video (c62104e)
  • Refactor hero-video into separate files — types, styles, utils (ddc1aa2)
  • Upgrade Vite to 8 and migrate to native tsconfigPaths resolver (43145d6)
  • Remove stale typographic/textr entries from SSR optimizeDeps (36a1e4c)
  • Remove obsolete react/react-dom path aliases from tsconfig (77d769a)

Other

hta218 added 30 commits April 20, 2026 17:00
Move the 3 loose root-level spec markdown files (lift-useOptimisticCart
design + 592-line plan, and the split-Await design) into a convention-
compliant 2026-04-10--optimistic-cart-fix-attempts/ folder. Add a README
marking them deprecated and explaining both approaches were abandoned in
favor of the shipped zustand sync.
Documents what actually shipped: the custom useCart() zustand sync that
replaced Hydrogen's useOptimisticCart. Includes README, plan.md with the
store.ts architecture, and a work-logs.md timeline from the two abandoned
attempts to the merged solution.
The lift approach was never implemented. Set status to deprecated, add a
Resolution section noting it was abandoned, and cross-link to the shipped
zustand spec and the attempts archive.
The remove CartForm used an anonymous fetcher whose only sync point
(ItemRemoveButtonInner) unmounts the moment the line is optimistically
spliced out, so the authoritative post-remove cart (with correct cost)
was discarded by React Router. The store.ts fallbacks recompute
totalQuantity but never cost, leaving the checkout total frozen until a
later add/quantity change.

Give the remove form a stable fetcherKey and read it from the always-
mounted CartSummary via useFetcher + useCartFetcherSync (the same pattern
already used for discount-code/gift-card removal), and include it in
isCartUpdating so the total skeletons during the transition. Server-
computed cost is now used; no store.ts change needed. Fixes both the
drawer and the cart page.
hta218 added 4 commits May 18, 2026 10:57
Add a post-merge follow-up section to plan.md, a work-logs entry, and a
README note for the stale-checkout-total fix. Notes that the tombstone /
useCart() design was unchanged — the gap was a missing keyed fetcher.
react-player v2's CommonJS "react-player/lazy" build broke under Vite 8's
dependency optimizer: the dynamic import resolved to a {__esModule, default}
wrapper object, so React.lazy threw "Element type is invalid".

v3 is ESM-only with a clean forwardRef default export and lazy-loads its
player backends internally, removing the interop layer entirely. Switched
the import to bare "react-player" and renamed the "url" prop to "src"
per the v3 API.
Add rounded-md/overflow-hidden to video, 3D model, and external video
containers in both the inline product gallery and the zoom modal. Also
tidy the zoom thumbnail scroll height to max-h-175 and give non-image
zoom media a full-height container.
@hta218 hta218 merged commit cbcd093 into main May 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant