/ lionsmane-fe / src / stores / articleFilter.store.ts
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  }));