| 1 | import { create } from 'zustand' |
| 2 | |
| 3 | export type SettingsTab = 'profile' | 'general' |
| 4 | |
| 5 | interface SettingsModalState { |
| 6 | /** 设置弹框是否可见 */ |
| 7 | settingsVisible: boolean |
| 8 | /** 设置弹框默认 Tab */ |
| 9 | settingsDefaultTab?: SettingsTab |
| 10 | /** 打开设置弹框,并可指定默认 Tab 和选项 */ |
| 11 | openSettings: (defaultTab?: SettingsTab) => void |
| 12 | /** 关闭设置弹框并重置默认 Tab */ |
| 13 | closeSettings: () => void |
| 14 | } |
| 15 | |
| 16 | export const useSettingsModalStore = create<SettingsModalState>(set => ({ |
| 17 | settingsVisible: false, |
| 18 | settingsDefaultTab: undefined, |
| 19 | openSettings: (defaultTab?: SettingsTab) => |
| 20 | set({ |
| 21 | settingsVisible: true, |
| 22 | settingsDefaultTab: defaultTab, |
| 23 | }), |
| 24 | closeSettings: () => |
| 25 | set({ |
| 26 | settingsVisible: false, |
| 27 | settingsDefaultTab: undefined, |
| 28 | }), |
| 29 | })) |
| 30 |