Merged in fix/book-674-select-hotel-infinite-loop (pull request #3351)
fix(BOOK-674): Refactor how we handle hotel filters * Refactor hotel filters store to URL state * Rename hotel filter store Approved-by: Joakim Jäderberg
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
import { create } from "zustand"
|
||||
|
||||
interface HotelFilterState {
|
||||
activeFilters: string[]
|
||||
toggleFilter: (filterId: string) => void
|
||||
setFilters: (filters: string[]) => void
|
||||
resultCount: number
|
||||
unfilteredResultCount: number
|
||||
setResultCount: (count: number, unfilteredCount: number) => void
|
||||
}
|
||||
|
||||
export const useHotelFilterStore = create<HotelFilterState>((set) => ({
|
||||
activeFilters: [],
|
||||
|
||||
setFilters: (filters) => set({ activeFilters: filters }),
|
||||
|
||||
toggleFilter: (filterId: string) =>
|
||||
set((state) => {
|
||||
const isActive = state.activeFilters.includes(filterId)
|
||||
const newFilters = isActive
|
||||
? state.activeFilters.filter((id) => id !== filterId)
|
||||
: [...state.activeFilters, filterId]
|
||||
return { activeFilters: newFilters }
|
||||
}),
|
||||
resultCount: 0,
|
||||
unfilteredResultCount: 0,
|
||||
setResultCount: (count, unfilteredCount) =>
|
||||
set({ resultCount: count, unfilteredResultCount: unfilteredCount }),
|
||||
}))
|
||||
16
packages/booking-flow/lib/stores/hotel-result-count.ts
Normal file
16
packages/booking-flow/lib/stores/hotel-result-count.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { create } from "zustand"
|
||||
|
||||
interface HotelResultCountState {
|
||||
resultCount: number
|
||||
unfilteredResultCount: number
|
||||
setResultCount: (count: number, unfilteredCount: number) => void
|
||||
}
|
||||
|
||||
export const useHotelResultCountStore = create<HotelResultCountState>(
|
||||
(set) => ({
|
||||
resultCount: 0,
|
||||
unfilteredResultCount: 0,
|
||||
setResultCount: (count, unfilteredCount) =>
|
||||
set({ resultCount: count, unfilteredResultCount: unfilteredCount }),
|
||||
})
|
||||
)
|
||||
Reference in New Issue
Block a user