90 lines
2.3 KiB
TypeScript
90 lines
2.3 KiB
TypeScript
import type { IAppStore, ITasks } from '../../interface/store';
|
|
|
|
export default class AppStore implements IAppStore {
|
|
public store: {
|
|
enabledMessageReadReceipt: boolean;
|
|
enabledEmojiPlugin: boolean;
|
|
enabledOnlineStatus: boolean;
|
|
enabledCustomerServicePlugin: boolean;
|
|
enabledTranslationPlugin: boolean;
|
|
enabledVoiceToText: boolean;
|
|
enableTyping: boolean;
|
|
enableConversationDraft: boolean;
|
|
enableAutoMessageRead: boolean;
|
|
isOfficial: boolean;
|
|
SDKVersion: string;
|
|
tasks: ITasks;
|
|
[key: string]: any;
|
|
};
|
|
|
|
public defaultStore = {
|
|
enabledMessageReadReceipt: false,
|
|
enabledEmojiPlugin: false,
|
|
enabledOnlineStatus: false,
|
|
enabledCustomerServicePlugin: false,
|
|
enabledTranslationPlugin: false,
|
|
enabledVoiceToText: false,
|
|
enableTyping: true,
|
|
enableConversationDraft: true,
|
|
enableAutoMessageRead: true,
|
|
isOfficial: false,
|
|
SDKVersion: '3.0.0',
|
|
tasks: {
|
|
sendMessage: false,
|
|
revokeMessage: false,
|
|
modifyNickName: false,
|
|
groupChat: false,
|
|
muteGroup: false,
|
|
dismissGroup: false,
|
|
call: false,
|
|
searchCloudMessage: false,
|
|
customerService: false,
|
|
translateTextMessage: false,
|
|
},
|
|
} as any;
|
|
|
|
constructor() {
|
|
this.store = {
|
|
enabledEmojiPlugin: false,
|
|
enabledMessageReadReceipt: false,
|
|
enabledOnlineStatus: false,
|
|
enabledCustomerServicePlugin: false,
|
|
enabledTranslationPlugin: false,
|
|
enabledVoiceToText: false,
|
|
enableTyping: true,
|
|
enableConversationDraft: true,
|
|
enableAutoMessageRead: true,
|
|
isOfficial: false,
|
|
SDKVersion: '3.0.0',
|
|
tasks: {
|
|
sendMessage: false,
|
|
revokeMessage: false,
|
|
modifyNickName: false,
|
|
groupChat: false,
|
|
muteGroup: false,
|
|
dismissGroup: false,
|
|
call: false,
|
|
searchCloudMessage: false,
|
|
customerService: false,
|
|
translateTextMessage: false,
|
|
},
|
|
};
|
|
}
|
|
|
|
update(key: string, data: any) {
|
|
this.store[key] = data;
|
|
}
|
|
|
|
getData(key: string) {
|
|
return this.store[key];
|
|
}
|
|
|
|
reset(keyList: string[] = []) {
|
|
this.store = {
|
|
...this.defaultStore,
|
|
...this.store,
|
|
...keyList.reduce((acc, key) => ({ ...acc, [key]: this.defaultStore[key] }), {}),
|
|
};
|
|
}
|
|
}
|