Files
lume/src/stores/sidebar.ts
Ren Amamiya 236131087a polish
2023-09-26 09:05:39 +07:00

29 lines
748 B
TypeScript

import { create } from 'zustand';
import { createJSONStorage, persist } from 'zustand/middleware';
interface SidebarState {
feeds: boolean;
chats: boolean;
integrations: boolean;
toggleFeeds: () => void;
toggleChats: () => void;
toggleIntegrations: () => void;
}
export const useSidebar = create<SidebarState>()(
persist(
(set) => ({
feeds: true,
chats: false,
integrations: true,
toggleFeeds: () => set((state) => ({ feeds: !state.feeds })),
toggleChats: () => set((state) => ({ chats: !state.chats })),
toggleIntegrations: () => set((state) => ({ integrations: !state.integrations })),
}),
{
name: 'sidebar',
storage: createJSONStorage(() => localStorage),
}
)
);