forked from labring/sealos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
global.ts
45 lines (43 loc) · 1.15 KB
/
global.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import { SystemEnv } from '@/types';
type GlobalState = SystemEnv & {
setEnv: <T extends keyof SystemEnv>(env: T, val: SystemEnv[T]) => void;
};
export const useGlobalStore = create<GlobalState>()(
persist(
immer((set) => ({
callback_url: '',
cf_sitekey: '',
service_protocol_en: '',
service_protocol_zh: '',
private_protocol_en: '',
private_protocol_zh: '',
github_client_id: '',
google_client_id: '',
wechat_client_id: '',
licenseEnabled: false,
needGithub: false,
needGoogle: false,
needPassword: false,
needSms: false,
needWechat: false,
private_protocol: '',
service_protocol: '',
stripeEnabled: false,
oauth_proxy: '',
guideEnabled: false,
wechatEnabledRecharge: false,
SEALOS_CLOUD_DOMAIN: 'cloud.sealos.io',
rechargeEnabled: false,
openWechatEnabled: false,
setEnv(env, val) {
set({ [env]: val });
}
})),
{
name: 'sealos-desktop-global'
}
)
);