bolt.diy/app/lib/stores/tabConfigurationStore.ts

33 lines
767 B
TypeScript
Raw Normal View History

import { create } from 'zustand';
export interface TabConfig {
id: string;
visible: boolean;
window: 'developer' | 'user';
order: number;
locked?: boolean;
}
interface TabConfigurationStore {
userTabs: TabConfig[];
developerTabs: TabConfig[];
get: () => { userTabs: TabConfig[]; developerTabs: TabConfig[] };
set: (config: { userTabs: TabConfig[]; developerTabs: TabConfig[] }) => void;
reset: () => void;
}
const DEFAULT_CONFIG = {
userTabs: [],
developerTabs: [],
};
export const tabConfigurationStore = create<TabConfigurationStore>((set, get) => ({
...DEFAULT_CONFIG,
get: () => ({
userTabs: get().userTabs,
developerTabs: get().developerTabs,
}),
set: (config) => set(config),
reset: () => set(DEFAULT_CONFIG),
}));