feat(catalog): add text pattern filters

This commit is contained in:
Tom (plebeius.eth)
2024-09-05 14:46:44 +02:00
parent 1122eb4f71
commit da33358ca4
4 changed files with 170 additions and 43 deletions
+20 -17
View File
@@ -1,4 +1,5 @@
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
interface CatalogFiltersStore {
showAdultBoards: boolean;
@@ -7,24 +8,26 @@ interface CatalogFiltersStore {
setShowGoreBoards: (value: boolean) => void;
showTextOnlyThreads: boolean;
setShowTextOnlyThreads: (value: boolean) => void;
filterText: string;
setFilterText: (value: string) => void;
}
const useCatalogFiltersStore = create<CatalogFiltersStore>((set) => ({
showTextOnlyThreads: localStorage.getItem('showTextOnlyThreads') === 'true' ? true : false,
setShowTextOnlyThreads: (value: boolean) => {
set({ showTextOnlyThreads: value });
localStorage.setItem('showTextOnlyThreads', value.toString());
},
showAdultBoards: localStorage.getItem('showAdultBoards') === 'true' ? true : false,
setShowAdultBoards: (value: boolean) => {
set({ showAdultBoards: value });
localStorage.setItem('showAdultBoards', value.toString());
},
showGoreBoards: localStorage.getItem('showGoreBoards') === 'true' ? true : false,
setShowGoreBoards: (value: boolean) => {
set({ showGoreBoards: value });
localStorage.setItem('showGoreBoards', value.toString());
},
}));
const useCatalogFiltersStore = create(
persist<CatalogFiltersStore>(
(set) => ({
showTextOnlyThreads: false,
setShowTextOnlyThreads: (value: boolean) => set({ showTextOnlyThreads: value }),
showAdultBoards: false,
setShowAdultBoards: (value: boolean) => set({ showAdultBoards: value }),
showGoreBoards: false,
setShowGoreBoards: (value: boolean) => set({ showGoreBoards: value }),
filterText: '',
setFilterText: (value: string) => set({ filterText: value }),
}),
{
name: 'catalog-filters-storage',
},
),
);
export default useCatalogFiltersStore;