add catalog filters

This commit is contained in:
Tom (plebeius.eth)
2024-09-05 15:36:00 +02:00
parent 5d2e28eb5b
commit c70fa57cba
4 changed files with 95 additions and 32 deletions
+16 -1
View File
@@ -1,6 +1,11 @@
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
interface FilterItem {
text: string;
enabled: boolean;
}
interface CatalogFiltersStore {
showAdultBoards: boolean;
setShowAdultBoards: (value: boolean) => void;
@@ -10,11 +15,14 @@ interface CatalogFiltersStore {
setShowTextOnlyThreads: (value: boolean) => void;
filterText: string;
setFilterText: (value: string) => void;
filterItems: FilterItem[];
setFilterItems: (items: FilterItem[]) => void; // New method to set all filter items at once
saveAndApplyFilters: (items: FilterItem[]) => void; // Updated to accept items
}
const useCatalogFiltersStore = create(
persist<CatalogFiltersStore>(
(set) => ({
(set, get) => ({
showTextOnlyThreads: false,
setShowTextOnlyThreads: (value: boolean) => set({ showTextOnlyThreads: value }),
showAdultBoards: false,
@@ -23,6 +31,13 @@ const useCatalogFiltersStore = create(
setShowGoreBoards: (value: boolean) => set({ showGoreBoards: value }),
filterText: '',
setFilterText: (value: string) => set({ filterText: value }),
filterItems: [],
setFilterItems: (items: FilterItem[]) => set({ filterItems: items }),
saveAndApplyFilters: (items: FilterItem[]) => {
set({ filterItems: items });
console.log('Filters saved and applied:', items);
// Example: refreshCatalog();
},
}),
{
name: 'catalog-filters-storage',