Files
ignum/lib/filter-zustand.ts
nabijonovdavronbek619@gmail.com b1095f2c12 filter
2026-01-30 11:24:07 +05:00

33 lines
842 B
TypeScript

import { create } from "zustand";
interface FilterZustandTypes {
filter: string[];
removeFilter: (data: string) => void;
toggleFilter: (data: string) => void;
resetFilter: () => void;
hasFilter: (data: string) => boolean;
}
export const useFilter = create<FilterZustandTypes>((set, get) => ({
filter: [],
removeFilter: (data) =>
set((state) => ({
filter: state.filter.filter((item) => item !== data),
})),
// Toggle: mavjud bo'lsa o'chirish, yo'q bo'lsa qo'shish
toggleFilter: (data) =>
set((state) => {
if (state.filter.includes(data)) {
return { filter: state.filter.filter((item) => item !== data) };
}
return { filter: [...state.filter, data] };
}),
resetFilter: () => set({ filter: [] }),
hasFilter: (data) => {
return get().filter.includes(data);
},
}));