mirror of
https://github.com/aykhans/slash-e.git
synced 2025-07-06 13:12:36 +00:00
30 lines
549 B
TypeScript
30 lines
549 B
TypeScript
import { create } from "zustand";
|
|
import { persist } from "zustand/middleware";
|
|
|
|
export interface Filter {
|
|
tag?: string;
|
|
mineOnly?: boolean;
|
|
visibility?: Visibility;
|
|
}
|
|
|
|
interface ViewState {
|
|
filter: Filter;
|
|
setFilter: (filter: Partial<Filter>) => void;
|
|
}
|
|
|
|
const useViewStore = create<ViewState>()(
|
|
persist(
|
|
(set, get) => ({
|
|
filter: {},
|
|
setFilter: (filter: Partial<Filter>) => {
|
|
set({ filter: { ...get().filter, ...filter } });
|
|
},
|
|
}),
|
|
{
|
|
name: "view",
|
|
}
|
|
)
|
|
);
|
|
|
|
export default useViewStore;
|