keycloak-demo-frontend/src/models/Redux/Global/index.ts

54 lines
1.3 KiB
TypeScript

import Immerable from '@Models/GeneralImmer';
import I18n from '@Models/Core/I18n';
import { MiddleWareObject, MiddleWareAPI, MiddleWareEnv } from './types';
class Global extends Immerable {
public globalLoading: boolean;
public globalLang: string;
public globalSideBar: boolean;
public globalSideBarStatic: boolean;
public globalAPI: MiddleWareAPI;
public globalEnv: MiddleWareEnv;
public globalI18n: I18n;
public constructor(middleware: MiddleWareObject) {
super();
this.globalLoading = false;
this.globalLang = 'tw';
this.globalSideBar = false;
this.globalSideBarStatic = true;
this.globalAPI = middleware.api;
this.globalEnv = middleware.env;
this.globalI18n = new I18n(this.globalLang);
}
public initialize(): void {
this.globalLoading = false;
}
public updateGlobalLoading(newGlobalLoading: boolean): void {
this.globalLoading = newGlobalLoading;
}
public updateGlobalLang(newGlobalLang: string): void {
this.globalLang = newGlobalLang;
this.globalI18n.switchLanguage(newGlobalLang);
}
public updateGlobalSideBar(newGlobalSideBarState: boolean): void {
this.globalSideBar = newGlobalSideBarState;
}
public updateGlobalSideBarStatic(newGlobalSideBarStatic: boolean): void {
this.globalSideBarStatic = newGlobalSideBarStatic;
}
}
export default Global;