Feat/SW-1549 map improvements
* fix: imported new icon
* refactor: rename component and set map handling to 'greedy'
* fix: show cards for 3s after hover
* refactor: update styles and added HotelPin component
* fix: change from close to back icon
* refactor: update to only use 1 state value for active pin and card
* fix: add click handler when dialog is opened
* fix: performance fixes for the dialog carousel
* fix: added border
* fix: clear timeout on mouseenter
* fix: changed to absolute import
* fix: moved hover state into the store
* fix: renamed store actions
Approved-by: Michael Zetterberg
fix(SW-1526): adjusted scroll position when selecting a rate
* fix: adjusted scroll position when selecting a rate
* fix
Approved-by: Michael Zetterberg
Feat/SW-2113 allow feature combinations
* feat(SW-2113): Refactor features data to be fetched on filter room filter change
* feat(SW-2113): added loading state
* fix: now clear room selection when applying filter and room doesnt exists. And added room features to mobile summary
* fix
* fix: add package to price details
* feat(SW-2113): added buttons to room filter
* fix: active room
* fix: remove console log
* fix: added form and close handler to room package filter
* fix: add restriction so you cannot select pet room with allergy room and vice versa
* fix: fixes from review feedback
* fix
* fix: hide modify button if on nextcoming rooms if no selection is made, and adjust filter logic in togglePackage
* fix: forgot to use roomFeatureCodes from input..
* fix: naming
Approved-by: Simon.Emanuelsson
feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data
* feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data
* fix: issue with total price not including room features
* fix: add return null
* fix
* fix
* fixes from PR feedback
Approved-by: Arvid Norlin
feat(SW-1435): Added RateCard component to design system
* feat(SW-1435): Added new component: RateCard to design system
* feat: added reward night points rate card
* fix: set svg icon color to "currentColor" to make them more reusable
* fix: added click handler for info icon
* fix: added selectedRate
Approved-by: Arvid Norlin
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-1078): mixed rate scenario
* feat(SW-1078): mixed rate scenario
* fix: change from css string modification to array join
* refactor: split out big reduce function into smaller parts
* fix: minor fixes and improvments
* fix: added room index map to localization string
Approved-by: Christian Andolf
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
Fix/SW-1715 price details with many rooms
* fix: added useMemo to stop combineRoomAvailabilities from rerunning
* fix: add max height and scroll to modal content
* fix: return new array in combineRoomAvailabilities instead of pushing
Approved-by: Christian Andolf
fix(SW-1645): added room features to price detail popup
* fix(SW-1645): added room features to price detail popup
Approved-by: Michael Zetterberg
Approved-by: Christian Andolf
fix(SW-1686): display total rooms and available rooms when filtering
* fix(SW-1686): display total rooms and available rooms when filtering
Approved-by: Arvid Norlin
Approved-by: Simon.Emanuelsson
Feat/SW-1077 enter details edit room
* feat(SW-1077): persist state when changing rooms
* fix: issue with step state when closing accordion and transition to correct room when modifying step
Approved-by: Pontus Dreij
Feat/SW-965 select rate modify room
* feat(SW-965): added new state for modify room and smaller fixes
* feat(SW-965): update state handling of modifyRateIndex
* fix: adjust scroll animation to handle modifyRateIndex
* fix: room state logic and removed unused css class
Approved-by: Pontus Dreij
Approved-by: Arvid Norlin
feat(SW-1259): Enter details multiroom
* refactor: remove per-step URLs
* WIP: map multiroom data
* fix: lint errors in details page
* fix: made useEnterDetailsStore tests pass
* fix: WIP refactor enter details store
* fix: WIP enter details store update
* fix: added room index to select correct room
* fix: added logic for navigating between steps and rooms
* fix: update summary to work with store changes
* fix: added room and total price calculation
* fix: removed unused code and added test for breakfast included
* refactor: move store selectors into helpers
* refactor: session storage state for multiroom booking
* feat: update enter details accordion navigation
* fix: added room index to each form component so they select correct room
* fix: added unique id to input to handle case when multiple inputs have same name
* fix: update payment step with store changes
* fix: rebase issues
* fix: now you should only be able to go to a step if previous room is completed
* refactor: cleanup
* fix: if no availability just skip that room for now
* fix: add select-rate Summary and adjust typings
Approved-by: Arvid Norlin
fix: change from undefined to empty string to get rid of uncontrolled input warnings in tests
* fix: change from undefined to empty string to get rid of uncontrolled input warnings in tests
Approved-by: Michael Zetterberg
fix: increase retry for getting booking status and dont show spinner if timeout occurs
* fix: increase retry for getting booking status and dont show spinner if timeout occurrs
Approved-by: Arvid Norlin
feat: adjust price detail modal to handle multi room and removed dependency of enter details store
* feat: adjust price detail modal to handle multi room and removed dependency of enter details store
* fix: remove div from table
* fix: added room translation
Approved-by: Pontus Dreij
Feat/SW-1379 multiroom summary
* fix: added early return in hotel query and added missing type annotations
* feat(SW-1379): update summary to support multiple rooms and add tests
* fix: added check for room number when using isMember for member prices
* fix: remove mocked array
* fix: minor bug fixes in rate details popup
* fix: translation key
Approved-by: Pontus Dreij
Approved-by: Arvid Norlin
BREAKING CHANGE: should be released to prod together with commit: 999aa376fb and requires Booking API to be released
fix(SW-1342)!: update booking schema to allow nullable and optional fields for confirmationNumber and description
* fix!: update booking schema to allow nullable and optional fields for confirmationNumber and description
Approved-by: Arvid Norlin
fix: update booking status schema and affected code
* fix: update booking api schema and affected code
* fix: update meta prop in booking response schema
Approved-by: Arvid Norlin
Feat/SW-1169 map bedtype icons
* feat(SW-1169): Added bed icons
* fix(SW-1169): update fill rule property
* fix(SW-1169): update clip rule prop
* feat(SW-1169): Added way of rendering bed type icons with extra beds
* feat(SW-1169): update room schema to map mainBed to enum
* feat(SW-1169): update bedtype icon color
* feat(SW-1169): transform unknown bed types to BedTypeEnum.Other
* test: update mock data with new schema
Approved-by: Christel Westerberg
Feat/SW-822 handle breakfast included
* feat(SW-822): Added flag for breakfast included and hide breakfast step if included
* fix: check if window is defined to avoid error during SSR
* fix: remove return if rate definition is not found because its expected if input is undefined
Approved-by: Christel Westerberg
Approved-by: Arvid Norlin
Feat/SW-619 signup non happy
* feat(SW-619): Added tests for Date input
* feat(SW-619): Updated date input to not allow date below 18 years old, also added form validation and tests to cover this change
* fix
* feat(SW-619): add info banner if membership verification fails
* fix(SW-619): update test description
Approved-by: Christel Westerberg
Approved-by: Arvid Norlin
Feat/enter details store tests
* test: add unit tests for useEnterDetailsStore and update Jest environment
* test: added more useEnterDetailsStore tests
Approved-by: Christel Westerberg
Feat/SW-1023 bed type information
* feat(SW-1023): add bed type info
* fix: formatting of bed type string
* fix(SW-1023): refactored bed type info and added default value to children beds
* fix(SW-1023): fixes from PR
Approved-by: Christel Westerberg
Approved-by: Simon.Emanuelsson
feat(SW-1026): added info regarding children breakfast
* feat(SW-1026): added info regarding children breakfast
* fix: remove hardcoded currency
* fix(SW-1026): remove price for no breakfast
* fix: missing translation
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-1007 saved payment cards now shown based on supported cards by hotel
* fix(SW-1007): refactored savedCards to only show supported payment cards
* fix(SW-1007): show error message even if metadata is null
* fix: merge changes that were missed
* fix: remove use server
Approved-by: Christel Westerberg
Feat/SW-755 price change non happy
* fix(SW-755): dont show field error if checkbox has no children
* feat(SW-755): Price change route + dialog WIP
* fix(SW-755): minor refactoring
* fix(SW-755): added logging to price change route
* fix(SW-755): remove redundant search param logic
* fix(SW-755): moved enum cast to zod instead
* fix(SW-755): move prop type to types folder
* fix(SW-755): Added suspense to Payment and refactored payment options hook
* fix(SW-755): seperated terms and conditions copy from the checkbox label
* fix(SW-755): add currency format and fixed wrong translation
* fix(SW-755): change from undefined to null
* fix(SW-755): added extra type safety to payment options
Approved-by: Christian Andolf
Approved-by: Simon.Emanuelsson
Feat/SW-999 visual fixes in enter details
* fix(SW-999): accordion title font sizes fix and alignment of change room button
* fix(SW-999): added scroll if content cannot fit inside popover
Approved-by: Christel Westerberg
Fix/SW-933 incorrect ratecode when creating booking as a member
* fix(SW-933): Added check if member to select correct rate code in create booking
* fix(SW-933): set member price in summary when "join" is true
* fix(SW-933): change "price" -> "amount" and fix bool expression
* fix(SW-933): added check for membership number in summary
Approved-by: Christel Westerberg
Feat/SW-618 payment non happy path
* feat(SW-618): filter out expired saved cards
* feat(SW-618): Added payment error codes and way of showing messages based on code
* feat(SW-618): show error message if max retries has been reached and remove search param after showing toast
* fix(SW-618): move fallback error codes
* fix(SW-618): remove ref from stopping useEffect to run twice
* fix(SW-618): refactored logic for toast message and minor fixes
* fix(SW-618): remove error message enum due to static analysis problems
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-618 payment non happy path
* feat(SW-618): filter out expired saved cards
* feat(SW-618): Added payment error codes and way of showing messages based on code
* feat(SW-618): show error message if max retries has been reached and remove search param after showing toast
* fix(SW-618): move fallback error codes
* fix(SW-618): remove ref from stopping useEffect to run twice
* fix(SW-618): refactored logic for toast message and minor fixes
* fix(SW-618): remove error message enum due to static analysis problems
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-613 refactor hotelreservation sidepeek
* feat(SW-613): move sidepeek paralell route to apply for all of hotelreservation
* feat(SW-613): refactor sidepeek logic to a unified approach for hotelreservation flow
* feat(SW-613): fix issue where room was not selected properly in sidepeek
* fix(SW-613): move back preload to layout
* fix(SW-613): move preload to dedicated file
* fix(SW-613): refactor sidepeek to work with hotel page
* feat(SW-613): added sidepeek button for room card
Approved-by: Simon.Emanuelsson
feat(SW-659): Receive query params from Planet callbacks
* feat(SW-659): read confirmation number from url and update callback url if dev
* fix(SW-659): moved callback url into env variable
Approved-by: Simon.Emanuelsson
Feat/SW-475 enter details header
* feat(SW-475): updated hotel mock data to reflect api
* feat(SW-475): Added hotel selection header with sidepeek buttons
* fix(SW-475): fixes from PR
* fix(SW-475): changed intl string
Approved-by: Arvid Norlin
Feat/SW-475 enter details header
* feat(SW-475): updated hotel mock data to reflect api
* feat(SW-475): Added hotel selection header with sidepeek buttons
* fix(SW-475): fixes from PR
* fix(SW-475): changed intl string
Approved-by: Arvid Norlin
Feat/SW-475 enter details header
* feat(SW-475): updated hotel mock data to reflect api
* feat(SW-475): Added hotel selection header with sidepeek buttons
* fix(SW-475): fixes from PR
* fix(SW-475): changed intl string
Approved-by: Arvid Norlin
Feat/CJ-17 points expiration table
* feat(CJ-17): Added point expiration table and refactored to use Table component
* feat(CJ-17): Use Table component inside Row
* fix(CJ-117): Added missing css class and update date formatting
* fix(CJ-117): Added copy of membershipLevel route with a protectedProcedure
Approved-by: Christel Westerberg
Feat/SW-196 design fixes
* feat(SW-196): Updated copy My credit cards -> My payment cards
* fix: update design system version
* feat(SW-196): Update Header component to use Preamble instead of Subtitle
* feat(SW-196): Minor design fixes
Approved-by: Christel Westerberg