返回 AiToEarn
settingsModal.ts
根目录 / project / aitoearn-web / src / store / settingsModal.ts
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
30 lines TYPESCRIPT