feat(SW-2873): Move HotelReservationSidePeek to booking-flow * Move sidepeek store to booking-flow * Begin move of HotelReservationSidePeek to booking-flow * Copy Link * Update AccessibilityAccordionItem * Split AccessibilityAccordionItem into two components * Fix tracking for Accordion * Duplicate ButtonLink to booking-flow TEMP * AdditionalAmeneties * wip * Move sidepeek accordion items * Remove temp ButtonLink * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Fix accordion tracking * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Update exports * Fix self-referencing import * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Add 'use client' to tracking function * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Fix TEMP folder * Refactor sidepeek tracking * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow Approved-by: Joakim Jäderberg
63 lines
1.2 KiB
TypeScript
63 lines
1.2 KiB
TypeScript
import { create } from "zustand"
|
|
|
|
export enum SidePeekEnum {
|
|
hotelDetails = "hotel-detail-side-peek",
|
|
roomDetails = "room-detail-side-peek",
|
|
bookedRoomDetails = "booked-room-detail-side-peek",
|
|
}
|
|
|
|
interface SidePeekState {
|
|
activeSidePeek: SidePeekEnum | null
|
|
hotelId: string | null
|
|
roomTypeCode: string | null
|
|
showCTA: boolean
|
|
confirmationNumber: string
|
|
openSidePeek: ({
|
|
key,
|
|
hotelId,
|
|
roomTypeCode,
|
|
showCTA,
|
|
confirmationNumber,
|
|
}: {
|
|
key: SidePeekEnum | null
|
|
hotelId: string
|
|
roomTypeCode?: string
|
|
showCTA?: boolean
|
|
confirmationNumber?: string
|
|
}) => void
|
|
closeSidePeek: () => void
|
|
}
|
|
|
|
const useSidePeekStore = create<SidePeekState>((set) => ({
|
|
activeSidePeek: null,
|
|
hotelId: null,
|
|
roomTypeCode: null,
|
|
showCTA: true,
|
|
user: null,
|
|
confirmationNumber: "",
|
|
openSidePeek: ({
|
|
key,
|
|
hotelId,
|
|
roomTypeCode,
|
|
showCTA,
|
|
confirmationNumber,
|
|
}) => {
|
|
set({
|
|
activeSidePeek: key,
|
|
hotelId,
|
|
roomTypeCode,
|
|
showCTA,
|
|
confirmationNumber,
|
|
})
|
|
},
|
|
closeSidePeek: () =>
|
|
set({
|
|
activeSidePeek: null,
|
|
hotelId: null,
|
|
roomTypeCode: null,
|
|
confirmationNumber: "",
|
|
}),
|
|
}))
|
|
|
|
export default useSidePeekStore
|