Fix: refactor booking flow search params
* wip: apply codemod and upgrade swc plugin
* wip: design-system to react 19, fix issues from async (search)params
* Prepare new parse function for booking flow search params
* Prepare serialize function for booking flow search params
* Improve handling of comma separated arrays
* Slightly refactor for readability
* Next abstracts URLSearchParams so handle the abstraction instead
* Refactor booking widget to use new search params parsing
* Rename search param functions
* Refactor select-hotel to use new search param parser
* Use new search params parser in select-rate and details
* Fix hotelId type
* Avoid passing down search params into BookingWidget components
* More updates to use new types instead of SearchParams<T>
* Remove types SelectHotelSearchParams and AlternativeSelectHotelSearchParams
* Fix parseBookingWidgetSearchParams return type
* Add error handling to booking search param parsers
* Fix modifyRateIndex handling in details page
* Clean up
* Refactor booking widget search param serializing to util function
* Move start page booking widget search param parsing to page
* Use new search param serializer in HandleErrorCallback
* Delete convertSearchParamsToObj & convertObjToSearchParams
Approved-by: Michael Zetterberg
chore (SW-834): Upgrade to Next 15
* wip: apply codemod and upgrade swc plugin
* wip: design-system to react 19, fix issues from async (search)params
* wip: fix remaining issues from codemod
serverClient is now async because context use headers()
getLang is now async because it uses headers()
* Minor cleanup
* Inline react-material-symbols package
Package is seemingly not maintained any more and doesn't support
React 19. This copies the package source into `design-system`,
makes the necessary changes for 19 and export it for others to use.
* Fix missing awaits
* Disable modal exit animations
Enabling modal exit animations via isExiting prop is causing
modals to be rendered in "hidden" state and never unmount.
Seems to be an issue with react-aria-components,
see https://github.com/adobe/react-spectrum/issues/7563.
Can probably be fixed by rewriting to a solution similar to
https://react-spectrum.adobe.com/react-aria/examples/framer-modal-sheet.html
* Remove unstable cache implementation and use in memory cache locally
* Fix ref type in SelectFilter
* Use cloneElement to add key prop to element
Approved-by: Linus Flood
SW-2527 - Fix boosted toast when tier matching
* Compare levels to ensure toast is only displayed when actually boosted
* Fix 200 name
* Update naming
Approved-by: Linus Flood
Fix(LOY-222): Find my booking url handling
* fix(LOY-222): adapt findMyBooking url based on HIDE_FOR_NEXT_RELEASE
* feat(LOY-222): add current web paths for findMyBooking in multiple languages
* refactor(LOY-222): better env and new url constructions
* refactor(LOY-222): decouple env var handling from getCurrentWebUrl
* fix(LOY-222): update findMyBooking URL construction to use baseUrl
* fix(LOY-222): simplify findMyBooking URL handling for new web urls
* fix(LOY-222): Update Finnish path for hotel reservation lookup
* refactor(LOY-222): rename PUBLIC_URL to NEXT_PUBLIC_PUBLIC_URL for consistency
Approved-by: Christian Andolf
Approved-by: Linus Flood
Feat/sw-2403 - Adding webview for MyStay
* feat/webview - added for my stay
* wip
* Passing headers so we can get the lang
* Cleanup
* Refactored and some performance improvements
Approved-by: Christian Andolf
feat(SW-2068): Link to Correct Public URL from within My Stays Overview Page
* feat(SW-2068): Link to Correct Public URL from within My Stays Overview Page
- Added language parameter to previous and upcoming stays queries.
- Updated Client components to utilize the new language hook.
- Refactored EmptyUpcomingStays component to dynamically generate links based on the current language.
- Adjusted user input validation to include optional language parameter.
* refactor(SW-2068): Update EmptyUpcomingStays components to use PUBLIC_URL + add utility to handle TLD based on language
* chore(SW-2068): Clarify TLD
* feat(SW-2068): documentation for getTldForLanguage
* refactor(SW-2068): Simplify booking URL construction in updateStaysBookingUrl
* refactor(SW-2068): Remove incorrect TLD update logic from booking URL construction
* refactor(SW-2068): Centralize booking URL paths using myBookingPath constant
* refactor(SW-2068): Streamline search params in booking URL construction logic in updateStaysBookingUrl
Approved-by: Christian Andolf
Switches out all the old icons to new ones, and moves them to the design system. The new icons are of three different types: Materialise Symbol, Nucleo, and Customized. Also adds further mapping between facilities/amenities and icons.
Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
feat(SW-1944) Update to correct URL to my stay (for my pages/my stays and confirmation page)
* feat(SW-1944) Update to correct URL to my stay (for my pages/my stays and confirmation page)
* feat(SW-1944) updated to RefId
* feat(SW-1944) updated myStay path
* feat(SW-1944) updated refId check
Approved-by: Christian Andolf
Feat/SW-1149 handle status polling
* feat(SW-1149): move terms and conditions sections to separate component and added copy
* feat(SW-1149): Added client component to handle success callback for payment flow
* fix: check for bookingCompleted status as well
* feat(SW-1587): use alert instead of toast for showing payment errors
* fix: added enum for payment callback status
* fix: proper way of checking for multiple statuses
* fix: update schema type
* fix: use localised link to customer service
* fix: update to use enum for status strings
Approved-by: Arvid Norlin
Feat/SW-1076 no room availability
* fix: update booking error codes
* feat(SW-1076): handle no room availabilty on enter-details
* fix: parse to json in api mutation instead of expecting json
* fix: remove 'isComplete' state from sectionAccordion because it was not needed
Approved-by: Simon.Emanuelsson
feat(LOY-155): Localize language options in edit profile form
* feat(LOY-155): Localize language options in edit profile form
* feat(LOY-155): Capitalize first letter of localized language options
Approved-by: Christian Andolf
feat(LOY-156): Improve language handling and localization in profile page
* feat(LOY-156): Improve language handling and localization in profile page
* refactor(LOY-156): Improve language display using Intl.DisplayNames
* feat(LOY-156): Enhance country display with localized country names
* refactor(LOY-156): Move countries data to a dedicated constants file & more type safe country mapping
* feat(LOY-156): Update isValidLang to use languageSchema + German translation for membership terms and conditions
* chore(LOY-156): language handling in profile component
Approved-by: Christian Andolf
Migrate to a monorepo setup - step 1
* Move web to subfolder /apps/scandic-web
* Yarn + transitive deps
- Move to yarn
- design-system package removed for now since yarn doesn't
support the parameter for token (ie project currently broken)
- Add missing transitive dependencies as Yarn otherwise
prevents these imports
- VS Code doesn't pick up TS path aliases unless you open
/apps/scandic-web instead of root (will be fixed with monorepo)
* Pin framer-motion to temporarily fix typing issue
https://github.com/adobe/react-spectrum/issues/7494
* Pin zod to avoid typ error
There seems to have been a breaking change in the types
returned by zod where error is now returned as undefined
instead of missing in the type. We should just handle this
but to avoid merge conflicts just pin the dependency for
now.
* Pin react-intl version
Pin version of react-intl to avoid tiny type issue where formatMessage
does not accept a generic any more. This will be fixed in a future
commit, but to avoid merge conflicts just pin for now.
* Pin typescript version
Temporarily pin version as newer versions as stricter and results in
a type error. Will be fixed in future commit after merge.
* Setup workspaces
* Add design-system as a monorepo package
* Remove unused env var DESIGN_SYSTEM_ACCESS_TOKEN
* Fix husky for monorepo setup
* Update netlify.toml
* Add lint script to root package.json
* Add stub readme
* Fix react-intl formatMessage types
* Test netlify.toml in root
* Remove root toml
* Update netlify.toml publish path
* Remove package-lock.json
* Update build for branch/preview builds
Approved-by: Linus Flood