94 Commits

Author SHA1 Message Date
Linus Flood
c5e2fc7805 Merged in fix/webview-mystay-rewrites (pull request #2329)
fix(webviews) - rewrites for my-stay webviews

* fix(webviews) - rewrites for my-stay webviews


Approved-by: Anton Gunnarsson
2025-06-10 13:11:42 +00:00
Simon Emanuelsson
9580281421 fix: allow any type of phone number 2025-06-03 11:54:05 +00:00
Arvid Norlin
79e669020a wip: new PhoneCountryCode Select 2025-06-03 11:54:04 +00:00
Anton Gunnarsson
03468ad824 Merged in fix/refactor-booking-flow-search-params (pull request #2148)
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
2025-06-02 13:38:01 +00:00
Anton Gunnarsson
cbf9e7b7c2 Merged in chore/next15 (pull request #1999)
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
2025-06-02 11:11:50 +00:00
Erik Tiekstra
651a388fa3 fix(SW-2378): Added restriction to the map options to avoid showing grey area in the map
Approved-by: Christian Andolf
2025-06-02 08:12:07 +00:00
Anton Gunnarsson
7e97b74c18 Merged in chore/remove-unused-code (pull request #2229)
Remove unused code

* Remove unused scandic-web files

* Remove unused exports


Approved-by: Joakim Jäderberg
2025-05-30 12:41:18 +00:00
Linus Flood
e6ed94029e Merged in fix/policy-link-fix (pull request #2178)
fix: policy link fix

* fix: policy link fix
2025-05-21 09:34:43 +00:00
Linus Flood
ad5ec80645 Merged in feat/sw-2855-urls (pull request #2177)
feat: sw-2855 urls

* feat: sw-2855 urls


Approved-by: Joakim Jäderberg
2025-05-21 09:11:02 +00:00
Chuma Mcphoy (We Ahead)
9ac5e43f0f Merged in feat/link-employment-route (pull request #2012)
feat(LOY-229): New Link Employment page

* feat(LOY-229): Ship Link Employment page

* fix(LOY-229): review fixes

* fix(LOY-229): update Button component props for better styling consistency

* fix(LOY-229): update ButtonLink href to use linkEmployment route


Approved-by: Christian Andolf
2025-05-09 07:51:27 +00:00
Michael Zetterberg
b910b6a313 feat(SW-2116): Use refId instead of confirmationNumber 2025-05-05 12:26:37 +00:00
Hrishikesh Vaipurkar
53b630b6d8 Merged in feat/SW-2308-family-friends-booking-rest (pull request #1916)
feat: SW-2308 FnF code restriction added

* feat: SW-2308 FnF code restriction added

* feat: 2308 Optimized code


Approved-by: Niclas Edenvin
2025-05-02 14:22:05 +00:00
Linus Flood
6979ac0c3b Merged in revert-pr-1925 (pull request #1927)
Revert "Feat/sw 2323 find booking (pull request #1925)"

Approved-by: Anton Gunnarsson
2025-05-02 13:05:42 +00:00
Arvid Norlin
74d37dad93 feat(SW-2116): RefId instead of confirmationNumber 2025-05-02 12:44:07 +02:00
Anton Gunnarsson
b9bf5e6510 Merged in fix/sw-2556-eb-basic-to-eb-member (pull request #1914)
Rename EuroBonus Basic to Member

* Rename EuroBonus Basic to Member


Approved-by: Linus Flood
2025-04-30 07:42:51 +00:00
Anton Gunnarsson
bbbd665a32 Merged in fix/sw-2527-incorrect-toast-when-tier-matching (pull request #1879)
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
2025-04-28 13:41:14 +00:00
Christian Andolf
e62e87e306 Merged in feat/LOY-169-use-new-country-select (pull request #1832)
feat(LOY-169): use new filter select for country select

Approved-by: Erik Tiekstra
2025-04-22 07:14:06 +00:00
Chuma Mcphoy (We Ahead)
27aef3982e Merged in fix/LOY-222-find-my-booking-urls-for-prod (pull request #1817)
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
2025-04-22 07:03:23 +00:00
Christian Andolf
c773dc3dfc feat(LOY-169): use new filter select for country select
standardised colors on error messages

fixed error validation on date field

removed duplicates in country list
2025-04-22 08:48:34 +02:00
Linus Flood
cfa8c166a3 Merged in feat/sw-2403-mystay-webview (pull request #1828)
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
2025-04-17 08:48:52 +00:00
Anton Gunnarsson
8dee7b0243 Merged in feat/sw-2260-update-sas-toc-links (pull request #1763)
Update terms and conditions link for sas

* Update terms and conditions link for sas


Approved-by: Joakim Jäderberg
2025-04-09 07:50:58 +00:00
Anton Gunnarsson
c56a0b8ce9 Merged in feat/sw-1975-get-profile-v2 (pull request #1651)
Use get Profile V2 endpoint

Approved-by: Linus Flood
2025-04-08 06:26:00 +00:00
Matilda Landström
1239f0c662 Merged in feat/SW-1711-SW-2077-icons (pull request #1709)
Fix(SW-1711)/(SW-2077): Export icons individually

* fix(SW-1711): export icons individually


Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
2025-04-07 07:25:25 +00:00
Erik Tiekstra
b70d933c73 fix(SW-2122): Added correct credit card icon
Approved-by: Michael Zetterberg
2025-04-03 09:28:27 +00:00
Simon Emanuelsson
3e0f503314 feat: add block to ARB rate when trying multiroom booking 2025-04-02 14:30:49 +00:00
Chuma Mcphoy (We Ahead)
56d5ad77d1 Merged in fix/SW-2068-correct-public-url-from-my-stays-overview-page (pull request #1694)
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
2025-04-02 12:44:02 +00:00
Erik Tiekstra
a6cd7e6111 feat(SW-1988): Replaced current bed component with new design
Approved-by: Chuma Mcphoy (We Ahead)
2025-03-27 14:47:50 +00:00
Matilda Landström
5de2a993a7 Merged in feat/SW-1711-switch-icons (pull request #1558)
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
2025-03-27 09:42:52 +00:00
Christian Andolf
f272dde1ef chore: remove unused filter modal
remove old cms model

refactor reward types
2025-03-26 09:55:26 +01:00
Niclas Edenvin
efa7336ebd Merged in feat/sw-1602-preliminary-receipt (pull request #1595)
feat/sw-1602 preliminary receipt

* feat(sw-1602): create page for preliminary receipt

* Add link to my stay page


Approved-by: Pontus Dreij
2025-03-24 07:55:15 +00:00
Pontus Dreij
8f9e268802 Merged in feat(SW-1944)-update-url-to-mystay (pull request #1566)
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
2025-03-20 09:55:24 +00:00
Tobias Johansson
ac493fe325 Merged in feat/SW-1149-handle-status-polling (pull request #1562)
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
2025-03-20 07:38:29 +00:00
Michael Zetterberg
33239f1f91 feat(SW-1730): add button to room sidepeek on hotelpage to select rate page for the hotel 2025-03-14 13:57:26 +00:00
Bianca Widstam
abd401c4f4 Merged in feat/SW-1368-1369-Guarantee-late-arrival (pull request #1512)
Feat/SW-1368 1369 Guarantee late arrival

* feat(SW-1368-SW-1369): guarantee late arrival for confirmation page and my stay

* feat(SW-1368-SW-1369): guarantee late arrival updated design

* feat(SW-1368-SW-1369): add translations

* feat(SW-1368-SW-1369): add translations

* feat(SW-1368-SW-1369): fix merge with master

* feat(SW-1368-SW-1369): add translations

* feat(SW-1368-SW-1369): add redirect with refId

* feat(SW-1368-SW-1369): if booking completed redirect to confirmation page

* feat(SW-1368-SW-1369): fix comments pr

* feat(SW-1368-SW-1369): fix comments pr

* feat(SW-1368-SW-1369): fix rebase master

* feat(SW-1368-SW-1369): fix duplicate flex rate check

* feat(SW-1368-SW-1369): if any room is flex, card must be used

* feat(SW-1368-SW-1369): move callback route

* feat(SW-1368-SW-1369): top align checkbox

* feat(SW-1368-SW-1369): top align checkbox


Approved-by: Tobias Johansson
Approved-by: Niclas Edenvin
2025-03-14 10:43:14 +00:00
Anton Gunnarsson
dabfe0424b Merged in fix/update-my-pages-sas-url (pull request #1533)
Update My Pages SAS url

* Update My Pages SAS url


Approved-by: Linus Flood
2025-03-14 08:31:19 +00:00
Chuma Mcphoy (We Ahead)
1ef6fd02c1 Merged in feat/LOY-55-Filter-Modal (pull request #1509)
feat(LOY-55): Add FilterRewardsModal

* feat(LOY-55): Add rewards filtering functionality

- Implement dynamic rewards filtering by category and membership level
- Create FilterRewardsModal component for filtering rewards
- Add useFilteredRewards hook to handle filtering logic
- Update rewards schema and constants to support new filtering features
- Remove hardcoded page size and replace with constant

* fix(LOY-55): reuse existing tier to friend map

* refactor(LOY-55): fix checkbox onChange type safety

* refactor(LOY-55): Improve rewards filtering type safety and validation

* refactor(LOY-55): Update filter modal border color using design token


Approved-by: Christian Andolf
2025-03-12 13:29:35 +00:00
Tobias Johansson
7c233ab846 Merged in feat/SW-1076-no-room-availability (pull request #1467)
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
2025-03-10 12:13:15 +00:00
Arvid Norlin
ec60e9abdd Merged in feat/SW-1652-confirmation-page (pull request #1483)
Feat/SW-1652 confirmation page

* feat(SW-1652): handle linkedReservations fetching

* fix: add missing translations

* feat: add linkedReservation retry functionality

* chore: align naming


Approved-by: Simon.Emanuelsson
2025-03-07 12:47:04 +00:00
Hrishikesh Vaipurkar
24bf96df41 feat: SW-1583 Used constants for strings 2025-03-07 09:08:19 +00:00
Chuma Mcphoy (We Ahead)
4db75057f2 Merged in feat/LOY-155-localize-language-options-in-edit-profile-form (pull request #1490)
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
2025-03-06 14:57:26 +00:00
Chuma Mcphoy (We Ahead)
738c0e223f Merged in feat/LOY-156-localize-user-languages (pull request #1452)
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
2025-03-03 12:55:05 +00:00
Christian Andolf
7d3c0c96e3 refactor(SW-1273): move find my booking routes in order to import them directly into next config 2025-02-27 09:57:18 +01:00
Christian Andolf
85cd815968 feat(SW-1273): find my booking page with rudimentary validation and redirect 2025-02-27 09:57:17 +01:00
Anton Gunnarsson
80100e7631 Merged in monorepo-step-1 (pull request #1080)
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
2025-02-26 10:36:17 +00:00