fix(SW-1041): fix UI design feedback * fix(SW-1041): fix UI design feedback * fix(SW-1041): small fix * fix(SW-1041): add filter and sort badge * fix(SW-1041): update activefilter when entering map view * fix(SW-1041): create hook with activefilters * fix(SW-1041): hook only sets filter * fix(SW-1041): fix padding breadcrumbs * fix(SW-1041): rename hook * fix(SW-1041): fix double scroll Approved-by: Pontus Dreij Approved-by: Niclas Edenvin
27 lines
789 B
TypeScript
27 lines
789 B
TypeScript
import { create } from "zustand"
|
|
|
|
interface HotelFilterState {
|
|
activeFilters: string[]
|
|
toggleFilter: (filterId: string) => void
|
|
setFilters: (filters: string[]) => void
|
|
resultCount: number
|
|
setResultCount: (count: 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,
|
|
setResultCount: (count) => set({ resultCount: count }),
|
|
}))
|