import { createContext, Component, FunctionComponent } from "react"; import { Emitter } from "@Model/Emitter"; /** * 主题模式 */ enum Themes { light = 1, dark = 2 } type Language = "ZH_CN" | "EN_US"; class Setting extends Emitter< Setting & {change: keyof Setting} > { /** * 主题 */ public themes: Themes = Themes.dark; /** * 语言 */ public language: Language = "EN_US"; /** * 设置参数 */ public setProps
(key: P, value: Setting[P]) {
this[key] = value as any;
this.emit("change", key);
this.emit(key as any, value as any);
}
}
interface IMixinSettingProps {
setting?: Setting;
}
const SettingContext = createContext