You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
/**
* 全局复用的变量、组件、配置,各个模块之间共享
* 通过单例模式实现,单例必须注意不受请求影响, 例如用户信息这些需要根据请求获取的。后续如果有ssr需求, 也不会影响
*/
interface ComponentsState {
[ key : string ] : any ;
}
interface MessageState {
copyPreferencesSuccess ? : ( title : string , content? : string ) = > void ;
}
export interface IGlobalSharedState {
components : ComponentsState ;
message : MessageState ;
}
class GlobalShareState {
# components : ComponentsState = { } ;
# message : MessageState = { } ;
/**
* 定义框架内部各个场景的消息提示
*/
public defineMessage ( { copyPreferencesSuccess } : MessageState ) {
this . # message = {
copyPreferencesSuccess ,
} ;
}
public getComponents ( ) : ComponentsState {
return this . # components ;
}
public getMessage ( ) : MessageState {
return this . # message ;
}
public setComponents ( value : ComponentsState ) {
this . # components = value ;
}
}
export const globalShareState = new GlobalShareState ( ) ;