This commit is contained in:
nabijonovdavronbek619@gmail.com
2026-01-30 11:24:07 +05:00
parent f439f9bbdf
commit b1095f2c12
14 changed files with 250 additions and 16 deletions

33
lib/filter-zustand.ts Normal file
View File

@@ -0,0 +1,33 @@
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);
},
}));