articleFilter.store.ts
1 import { create } from 'zustand'; 2 3 export enum ArticleFilter { 4 Unread, 5 Starred, 6 Read, 7 All, 8 } 9 10 interface FilterState { 11 filter: ArticleFilter; 12 setToUnread: () => void; 13 setToRead: () => void; 14 setToStarred: () => void; 15 setToAll(): void; 16 } 17 18 export const useArticleFilterStore = create<FilterState>((set) => ({ 19 filter: ArticleFilter.Unread, 20 setToAll: () => set(() => ({ filter: ArticleFilter.All })), 21 setToRead: () => set(() => ({ filter: ArticleFilter.Read })), 22 setToStarred: () => set(() => ({ filter: ArticleFilter.Starred })), 23 setToUnread: () => set(() => ({ filter: ArticleFilter.Unread })), 24 }));