UNPKG

@eventcatalogtest/studio

Version:

A drag and drop UI for distributed systems that keeps your diagrams where they belong – in your repo

32 lines (29 loc) 947 B
import { create } from 'zustand'; import { persist, createJSONStorage } from 'zustand/middleware'; export type SettingsTab = 'config'; interface SettingsStore { isOpen: boolean; activeTab: SettingsTab; eventCatalogPath: string; toggleModal: () => void; setModalOpen: (open: boolean) => void; setActiveTab: (tab: SettingsTab) => void; setEventCatalogPath: (path: string) => void; } export const useSettingsStore = create<SettingsStore>()( persist( (set) => ({ isOpen: false, activeTab: 'config', eventCatalogPath: '', toggleModal: () => set((state) => ({ isOpen: !state.isOpen })), setModalOpen: (open: boolean) => set({ isOpen: open }), setActiveTab: (tab: SettingsTab) => set({ activeTab: tab }), setEventCatalogPath: (path: string) => set({ eventCatalogPath: path }), }), { name: 'settings-storage', storage: createJSONStorage(() => localStorage), } ) );