57 Commits

Author SHA1 Message Date
Anton Gunnarsson
16fbdb7ae0 Merged in fix/refactor-currency-display (pull request #3434)
fix(SW-3616): Handle EuroBonus point type everywhere

* Add tests to formatPrice

* formatPrice

* More work replacing config with api points type

* More work replacing config with api points type

* More fixing with currency

* maybe actually fixed it

* Fix MyStay

* Clean up

* Fix comments

* Merge branch 'master' into fix/refactor-currency-display

* Fix calculateTotalPrice for EB points + SF points + cash


Approved-by: Joakim Jäderberg
2026-01-15 09:32:17 +00:00
Erik Tiekstra
0c6a4cf186 feat(BOOK-463): Fetching hotel filters from CMS and using these inside the destination pages and select hotel page
* feat(BOOK-463): Fetching hotel filters from CMS and using these inside the destination pages

* fix(BOOK-698): fetch hotel filters from CMS on select hotel page

Approved-by: Bianca Widstam
2026-01-12 12:02:25 +00:00
Joakim Jäderberg
99537b13e8 Merged in chore/add-error-details-for-sentry (pull request #3378)
Include more details when throwing errors for debugging in Sentry

* WIP throw errors with more details for debugging in Sentry

* Fix throwing response-data

* Clearer message when a response fails

* Add message to errors

* better typings

* .

* Try to send profileID and membershipNumber to Sentry when we fail to parse the apiResponse

* rename notFound -> notFoundError

* Merge branch 'master' of bitbucket.org:scandic-swap/web into chore/add-error-details-for-sentry


Approved-by: Linus Flood
2026-01-12 09:01:44 +00:00
Bianca Widstam
dc18589afe Merged in fix/isostring-error (pull request #3386)
fix: isostring

* fix: isostring


Approved-by: Joakim Jäderberg
2026-01-05 09:21:30 +00:00
Bianca Widstam
57d0e1b27b Merged in fix/BOOK-662-handle-overlapping-dates-timezone (pull request #3319)
Fix/BOOK-662 handle overlapping dates timezone

* fix(BOOK-662): handle overlapping dates alerts

* fix(BOOK-662): handle overlapping dates alerts

* fix(BOOK-662): add test same dates


Approved-by: Anton Gunnarsson
2025-12-19 14:03:30 +00:00
Linus Flood
40e1efa81f Merged in feat/SW-3688-nerbyhotels (pull request #3372)
feat(SW-3688): remove nearbyHotels prop/fetch from hotelscheme

* feat(SW-3688): remove nearbyHotels prop/fetch from hotelscheme

* Cleanup


Approved-by: Joakim Jäderberg
2025-12-18 13:43:56 +00:00
Christel Westerberg
6b08d5a113 Merged in fix/STAY-135 (pull request #3368)
Fix/STAY-135 & STAY-127

* fix: make quantity and delivery separate steps in mobile

* fix: update design for delivery step in ancillary flow

* fix: add error state for missing time

* fix: only allow points or cash payment for ancillaries

* fix: break out stepper to design system

* fix: update design of select quantity step in add ancillaries flow

* fix: add error states for quantity

* fix: handle insufficient points case

* fix: update stepper to include optional disabledMessage tooltip

* fix: handle validations

* fix: change name to camel case


Approved-by: Bianca Widstam
Approved-by: Chuma Mcphoy (We Ahead)
2025-12-18 13:31:43 +00:00
Joakim Jäderberg
494bf2ba78 Merged in fix/BOOK-672-hotels-without-related-links (pull request #3348)
fix(BOOK-672): remove unused relationsships that threw when missing

* fix(BOOK-672): remove unused relationsships that threw when missing


Approved-by: Linus Flood
2025-12-15 13:19:05 +00:00
Anton Gunnarsson
de94c47f3f Merged in fix/sw-3667-not-enough-points (pull request #3337)
fix(SW-3667): Remove conditional on Scandic user token

* Remove conditional on Scandic user token


Approved-by: Joakim Jäderberg
2025-12-12 09:34:07 +00:00
Joakim Jäderberg
8b94540d19 Merged in chore/redirect-counter (pull request #3302)
Counter name is now searchable and add counter for redirects

* refactor: createCounter() only takes one argument, the name of the counter. Makes it easier to search for

* feat: add counter when we do a redirect from redirect-service


Approved-by: Linus Flood
2025-12-08 10:24:05 +00:00
Matilda Landström
5986828580 Merged in feat/LOY-430-reward-nights (pull request #3295)
Feat/LOY-430 reward nights

* chore(LOY-430): add reward nights request and dynamic content

* chore(LOY-430): fix Reward Night component

* Refactor: use existing endpoint and add rewardNight data to that response instead


Approved-by: Linus Flood
2025-12-08 07:44:58 +00:00
Christel Westerberg
001000a56d Merged in fix/STAY-131-hide-ancillaries (pull request #3299)
fix: fix logic for identifying single use ancillaries

* fix: fix logic for identifying single use ancillaries

* fix: filter out empty categories of ancillaries


Approved-by: Erik Tiekstra
2025-12-05 12:25:12 +00:00
Erik Tiekstra
a9c1a91134 fix(BOOK-599): Filtering on correct values for hotel pages now and added comments
Approved-by: Matilda Landström
2025-12-05 06:31:17 +00:00
Joakim Jäderberg
f6a807758e Merged in chore/remove-enrichHotel-call (pull request #3244)
Chore/remove enrichHotel call

* chore: remove enrichHotel api call

* include cityId when errors happen

* remove unused funciton and cleanup code

* tests no longer expect us to have called a function that is not used

* remove commented code


Approved-by: Linus Flood
2025-12-01 07:49:59 +00:00
Christel Westerberg
69f194f7bf Merged in fix/handle-single-ancillaries (pull request #3231)
Fix(STAY-128): Handle single ancillaries

* fix: refactor ancillaries flow

* fix: add logic to determine if an ancillary requires quantity

* fix: breakout ancillary description to its own component

* fix: cleanup

* fix: cleanup


Approved-by: Bianca Widstam
Approved-by: Erik Tiekstra
2025-11-28 15:02:45 +00:00
Christel Westerberg
f34e88db7c Merged in fix/STAY-124-change-dates (pull request #3199)
Fix/STAY-124 change dates

* fix: handle change dates for different rate types

* fix: update wrong spelling in cancellation rules

* fix: add hover state on links

* fix: handle multiroom scenario


Approved-by: Erik Tiekstra
2025-11-24 09:51:16 +00:00
Matilda Landström
51036d2f70 Merged in feat/LOY-485-remove-api-attributes (pull request #3190)
feat(LOY-485): remove isLackingCribs and isLackingExtraBeds

* feat(LOY-485): remove isLackingCribs and


Approved-by: Linus Flood
2025-11-20 14:18:42 +00:00
Erik Tiekstra
b0f2276b0b fix(BOOK-559): Using same ContactInformation component on hotel pages and booking flow inside the hotel details sidepeek
Approved-by: Bianca Widstam
2025-11-13 14:32:17 +00:00
Linus Flood
1a24eb68c7 Merged in feat/sw-3596-console (pull request #3100)
feat(SW-3596): added lint rule for no console.log. Use logger instead.

* feat(SW-3596): added lint rule for no console.log. Use logger instead.


Approved-by: Joakim Jäderberg
2025-11-07 08:14:16 +00:00
Joakim Jäderberg
15a2da333d Merged in feature/SW-3572-hotel-data-endpoint (pull request #3051)
SW-3572 API route for listing hotels per city or country

* wip hotel data endpoint

* Correct route params type

* wip

* skip static paths call

* timeout when getting destinations take too long

* call noStore when we get a timeout

* add cache-control headers

* .

* .

* .

* wip

* wip

* wip

* wip

* add route for getting hotels per country

* include city when listing by country

* fix distance SI unit

* fix sorting

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/SW-3572-hotel-data-endpoint

* packages/tracking passWithNoTests

* revalidate must be static value

* remove oxc reference

* cleanup

* cleanup hotel api route

* feat(SW-3572): cleanup error handling


Approved-by: Anton Gunnarsson
2025-11-03 12:10:22 +00:00
Joakim Jäderberg
3b3e7308cc Merged in feat/SW-3549-pass-scandic-token (pull request #2989)
Feat/SW-3549 pass scandic token

* WIP pass scandic token

* pass scandic token when booking

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feat/SW-3549-pass-scandic-token

* pass user token when doing availability search

* undo changes

* merge

* Merged in fix/sw-3551-rsc-bookingflowconfig (pull request #2988)

fix(SW-3551): Fix issue with BookingConfigProvider in RSC

* wip move config to pages

* Move config providing to pages

* Merged in fix/update-promo-error-modal-text (pull request #2990)

fix: update promo error modal text

* fix: update promo error modal text


Approved-by: Emma Zettervall

* Merged in fix/sw-3514-missing-membership-input-for-multiroom (pull request #2991)

fix(SW-3514): Show join Scandic Friends card for SAS multiroom

* Show join card for room 2+


Approved-by: Hrishikesh Vaipurkar

* Merged in feat/lokalise-rebuild (pull request #2993)

Feat/lokalise rebuild

* chore(lokalise): update translation ids

* chore(lokalise): easier to switch between projects

* chore(lokalise): update translation ids

* .

* .

* .

* .

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* .

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* chore(lokalise): new translations

* merge

* switch to errors for missing id's

* merge

* sync translations


Approved-by: Linus Flood

* Merged in feat/SW-3552-logout-from-social-session-when- (pull request #2994)

feat(SW-3552): Removed scandic session on logout

Approved-by: Joakim Jäderberg

* merge

* replace getRedemptionTokenSafely() with context based instead

* Refactor user verification and error handling across multiple components; implement safeTry utility for safer async calls

* Refactor user verification and error handling across multiple components; implement safeTry utility for safer async calls

* merge

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feat/SW-3549-pass-scandic-token

* add booking scope

remove unused getMembershipNumber()


Approved-by: Anton Gunnarsson
Approved-by: Hrishikesh Vaipurkar
2025-10-24 13:17:02 +00:00
Hrishikesh Vaipurkar
2a28681259 Merged in fix/SW-3526-show-sas-eb-points-unlinked- (pull request #2987)
fix(SW-3256): Fixed Users with 0 points throws error
Approved-by: Anton Gunnarsson
2025-10-21 13:01:08 +00:00
Bianca Widstam
6c65951fa7 Merged in BOOK-448-select-rate-reload-bookingcode (pull request #2974)
(BOOK-448): prevent refetching select rate availability when adding room bookingcode

* (BOOK-448): prevent refetching select rate availability when adding room bookingcode


Approved-by: Linus Flood
2025-10-16 06:16:35 +00:00
Hrishikesh Vaipurkar
78ede453a2 Merged in feat/SW-3526-show-sas-eb-points-rate-in- (pull request #2933)
feat(SW-3526): Show EB points rate and label in booking flow

* feat(SW-3526): Show EB points rate and label in booking flow

* feat(SW-3526) Optimized points currency code

* feat(SW-3526) Removed extra multiplication for token expiry after rebase

* feat(SW-3526): Updated to exhaustive check and thow if type error

Approved-by: Anton Gunnarsson
2025-10-15 06:54:44 +00:00
Erik Tiekstra
50aaa095eb fix(BOOK-412): Using internalCategoryName to map ancillaries and show translated categoryName only
Approved-by: Linus Flood
2025-10-10 09:10:51 +00:00
Joakim Jäderberg
8498026189 Merged in chore/refactor-hotel-trpc-routes (pull request #2891)
Chore/refactor hotel trpc routes

* chore(SW-3519): refactor trpc hotel routers

* chore(SW-3519): refactor trpc hotel routers

* refactor

* merge

* Merge branch 'master' of bitbucket.org:scandic-swap/web into chore/refactor-hotel-trpc-routes


Approved-by: Linus Flood
2025-10-01 12:55:45 +00:00
Bianca Widstam
34020dad78 Merged in fix/BOOK-136-ancillary-image-without-metadata (pull request #2841)
fix(BOOK-136): ancillary image validation without metadata

* fix(BOOK-136): ancillary image validation without metadata

* fix(BOOK-136): ancillary image


Approved-by: Erik Tiekstra
2025-09-22 12:17:12 +00:00
Erik Tiekstra
ce71fc421c fix: Trimming hotel ids from contentstack to avoid 404 errors when fetching hotel data
Approved-by: Linus Flood
Approved-by: Matilda Landström
2025-09-12 09:18:50 +00:00
Joakim Jäderberg
7dee6d5083 Merged in chore/move-enter-details (pull request #2778)
Chore/move enter details

Approved-by: Anton Gunnarsson
2025-09-11 07:16:24 +00:00
Erik Tiekstra
f04fe467da feat(SW-3151): Added original to imageSchema and added transform to a more generic image type
Approved-by: Bianca Widstam
Approved-by: Chuma Mcphoy (We Ahead)
Approved-by: Matilda Landström
2025-09-10 08:29:05 +00:00
Matilda Landström
8f813eb9e7 Merged in feat/SW-3163-remove-openinghours-name (pull request #2735)
feat(SW-3163): update opening hours schema name/nameEnglish

* feat(SW-3163): remove name

* fix(SW-3163): update schemas


Approved-by: Erik Tiekstra
2025-09-04 14:18:57 +00:00
Anton Gunnarsson
f7ef58eafa Merged in feat/sw-2874-move-select-rate (pull request #2750)
Approved-by: Joakim Jäderberg
2025-09-03 08:30:05 +00:00
Anton Gunnarsson
87402a2092 Merged in feat/sw-2873-move-selecthotel-to-booking-flow (pull request #2727)
feat(SW-2873): Move select-hotel to booking flow

* crude setup of select-hotel in partner-sas

* wip

* Fix linting

* restructure tracking files

* Remove dependency on trpc in tracking hooks

* Move pageview tracking to common

* Fix some lint and import issues

* Add AlternativeHotelsPage

* Add SelectHotelMapPage

* Add AlternativeHotelsMapPage

* remove next dependency in tracking store

* Remove dependency on react in tracking hooks

* move isSameBooking to booking-flow

* Inject searchParamsComparator into tracking store

* Move useTrackHardNavigation to common

* Move useTrackSoftNavigation to common

* Add TrackingSDK to partner-sas

* call serverclient in layout

* Remove unused css

* Update types

* Move HotelPin type

* Fix todos

* Merge branch 'master' into feat/sw-2873-move-selecthotel-to-booking-flow

* Merge branch 'master' into feat/sw-2873-move-selecthotel-to-booking-flow

* Fix component


Approved-by: Joakim Jäderberg
2025-09-01 08:37:00 +00:00
Erik Tiekstra
19063da08a feat(SW-3040): Sorting hotel listing when all hotels from a city/country are chosen
Approved-by: Matilda Landström
2025-09-01 07:52:53 +00:00
Erik Tiekstra
92cb3f3663 fix(SW-3307): Filtered out duplicate facilities from hotel response
Approved-by: Matilda Landström
2025-08-29 13:00:25 +00:00
Erik Tiekstra
2e655619d1 feat(SW-3121): Added support for campaign text inside the hero of campaign pages
* fix: making sure the cacheKey for getHotelsByHotelIds is not sorting the original array

Approved-by: Matilda Landström
2025-08-28 13:46:48 +00:00
Anton Gunnarsson
c53e6ef187 Merged in chore/move-use-scroll-to-top (pull request #2705)
chore: Move useScrollToTop to common package

* Move useScrollToTop to common package


Approved-by: Joakim Jäderberg
2025-08-26 11:48:54 +00:00
Hrishikesh Vaipurkar
44fce176e9 Merged in chore/SW-3246-move-alert-to-design-system (pull request #2698)
chore(SW-3246): Moved Alert component into design system

* chore(SW-3246): Moved Alert component into design system

* chore(SW-3246): Optimsed code and imports

* chore(SW-3246): Moved type AlertTypeEnum and other to common package


Approved-by: Anton Gunnarsson
2025-08-26 11:22:38 +00:00
Matilda Landström
4c9605ef3f Merged in fix/SW-2528 (pull request #2688)
fix(SW-2528): get correct restaurant type

* fix(SW-2528): get correct type


Approved-by: Erik Tiekstra
2025-08-26 06:38:40 +00:00
Erik Tiekstra
8180271b0f fix(SW-3203): Added property id to pointOfInterestSchema to handle identical names
Approved-by: Matilda Landström
Approved-by: Chuma Mcphoy (We Ahead)
2025-08-26 05:58:25 +00:00
Joakim Jäderberg
c54c1ec540 Merged in SW-3270-move-interactive-map-to-design-system-or-booking-flow (pull request #2681)
SW-3270 move interactive map to design system or booking flow

* wip

* wip

* merge

* wip

* add support for locales in design-system

* add story for HotelCard

* setup alias

* .

* remove tracking from design-system for hotelcard

* pass isUserLoggedIn

* export design-system-new-deprecated.css from design-system

* Add HotelMarkerByType to Storybook

* Add interactive map to Storybook

* fix reactintl in vitest

* rename env variables

* .

* fix background colors

* add storybook stories for <Link />

* merge

* fix tracking for when clicking 'See rooms' in InteractiveMap

* Merge branch 'master' of bitbucket.org:scandic-swap/web into SW-3270-move-interactive-map-to-design-system-or-booking-flow

* remove deprecated comment


Approved-by: Anton Gunnarsson
2025-08-25 11:26:16 +00:00
Matilda Landström
7891ae3ae6 Merged in feat/SW-3232-site-config-alerts (pull request #2671)
feat(SW-3232): update alert schema

* feat(SW-3232): update alert schema


Approved-by: Erik Tiekstra
2025-08-20 09:18:00 +00:00
Matilda Landström
789818eefd Merged in feat/SW-3127-meeting-room-sort-order (pull request #2634)
feat(SW-3127): use new sort order attribute

* feat(SW-3127): use new sort order attribute


Approved-by: Erik Tiekstra
2025-08-20 08:46:16 +00:00
Joakim Jäderberg
68cd061c6d Merged in feature/select-rate-vertical-data-flow (pull request #2535)
Feature/select rate vertical data flow

* add fix from SW-2666

* use translations for room packages

* move types to it's own file

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow

* merge

* feature/select-rate: double rate for campaing rates

* revert NODE_ENV check in Cookiebot script

* revert testing values

* fix(SW-3171): fix all filter selected in price details

* fix(SW-3166): multiroom anchoring when changing filter

* fix(SW-3172): check hotelType, show correct breakfast message

* Merge branch 'feature/select-rate-vertical-data-flow' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow

* fix: show special needs icons for subsequent roomTypes SW-3167

* fix: Display strike through text when logged in SW-3168

* fix: Reinstate the scrollToView behaviour when selecting a rate SW-3169

* merge

* .

* PR fixes

* fix: don't return notFound()

* .

* always include defaults for room packages

* merge

* merge

* merge

* Remove floating h1 for new select-rate


Approved-by: Anton Gunnarsson
2025-08-13 12:45:40 +00:00
Matilda Landström
37c311d826 Merged in feat/SW-2528-restaurant-icons-sidepeek (pull request #2610)
feat(SW-2528): add restaurant type icon to sidepeek

* feat(SW-2528): add restaurant type icon to sidepeek


Approved-by: Anton Gunnarsson
2025-08-11 11:45:20 +00:00
Hrishikesh Vaipurkar
271d5ec32c Merged in fix/SW-3199-prod-users-are-displayed-with- (pull request #2592)
fix(SW-3199): Fixed redemption search for alternative hotels

* fix(SW-3199): Fixed redemption search for alternative hotels

* fix(SW-3199): User points validation included


Approved-by: Anton Gunnarsson
2025-08-07 07:29:32 +00:00
Hrishikesh Vaipurkar
33c274bce1 Merged in fix/SW-2926-hotel-special-alerts- (pull request #2580)
fix(SW-2926): Display alerts in booking flow if date range matches search dates and in hotel page if current date is in date range

* fix(SW-2926): Display alerts in booking flow if date range matches search dates and in hotel page if current date is in date range

* fix(SW-2926) Updated hotel alerts with respect to booking dates

* fix(SW-2926): Optimized code


Approved-by: Matilda Landström
2025-08-01 08:26:32 +00:00
Matilda Landström
9679212864 Merged in feat/SW-1956-add-English-caption-fallback (pull request #2574)
Feat/SW-1956 add English caption fallback

* feat(SW-1956): add English fallback to gallery caption

* feat(SW-1956): add English fallback to gallery caption


Approved-by: Anton Gunnarsson
2025-07-29 06:12:57 +00:00
Matilda Landström
19b58be654 Merged in feat/SW-1468 (pull request #2529)
feat(SW-1468): add restaurant name mapping

* feat(SW-1468): add restaurant name mapping


Approved-by: Bianca Widstam
Approved-by: Chuma Mcphoy (We Ahead)
2025-07-08 12:20:18 +00:00
Erik Tiekstra
fa7214cb58 Feat/SW-2271 hotel list filtering
* feat(SW-2271): Changes to hotel data types in preperation for filtering
* feat(SW-2271): Added filter and sort functionality

Approved-by: Matilda Landström
2025-07-04 09:27:20 +00:00