Initial commit

This commit is contained in:
Benjamin Sutter
2026-05-15 00:48:18 +02:00
commit 9e827c50f9
72 changed files with 10477 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import { create } from 'zustand'
const MAX_COMPARE_ITEMS = 3
interface CompareState {
compareTray: string[]
addToCompare: (propertyId: string) => void
removeFromCompare: (propertyId: string) => void
clearCompare: () => void
isInCompare: (propertyId: string) => boolean
isFull: () => boolean
}
export const useCompareStore = create<CompareState>((set, get) => ({
compareTray: [],
addToCompare: (propertyId) =>
set((state) => {
if (state.compareTray.length >= MAX_COMPARE_ITEMS) return state
if (state.compareTray.includes(propertyId)) return state
return { compareTray: [...state.compareTray, propertyId] }
}),
removeFromCompare: (propertyId) =>
set((state) => ({ compareTray: state.compareTray.filter(id => id !== propertyId) })),
clearCompare: () => set({ compareTray: [] }),
isInCompare: (propertyId) => get().compareTray.includes(propertyId),
isFull: () => get().compareTray.length >= MAX_COMPARE_ITEMS,
}))