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
32 lines
776 B
TypeScript
32 lines
776 B
TypeScript
import { create } from "zustand"
|
|
|
|
import { SidePeekEnum } from "@/types/components/hotelReservation/sidePeek"
|
|
|
|
interface SidePeekState {
|
|
activeSidePeek: SidePeekEnum | null
|
|
hotelId: string | null
|
|
roomTypeCode: string | null
|
|
openSidePeek: ({
|
|
key,
|
|
hotelId,
|
|
roomTypeCode,
|
|
}: {
|
|
key: SidePeekEnum | null
|
|
hotelId: string
|
|
roomTypeCode?: string
|
|
}) => void
|
|
closeSidePeek: () => void
|
|
}
|
|
|
|
const useSidePeekStore = create<SidePeekState>((set) => ({
|
|
activeSidePeek: null,
|
|
hotelId: null,
|
|
roomTypeCode: null,
|
|
openSidePeek: ({ key, hotelId, roomTypeCode }) =>
|
|
set({ activeSidePeek: key, hotelId, roomTypeCode }),
|
|
closeSidePeek: () =>
|
|
set({ activeSidePeek: null, hotelId: null, roomTypeCode: null }),
|
|
}))
|
|
|
|
export default useSidePeekStore
|