19 lines
332 B
TypeScript
19 lines
332 B
TypeScript
|
|
import { Theme } from "./Theme";
|
||
|
|
|
||
|
|
export default class ThemeManager {
|
||
|
|
_theme: Theme;
|
||
|
|
onThemeChange: (theme: Theme) => void;
|
||
|
|
constructor(theme: Theme) {
|
||
|
|
this._theme = theme;
|
||
|
|
}
|
||
|
|
|
||
|
|
public get theme() {
|
||
|
|
return this._theme;
|
||
|
|
}
|
||
|
|
|
||
|
|
public set theme(value) {
|
||
|
|
this._theme = value;
|
||
|
|
this.onThemeChange?.(value);
|
||
|
|
}
|
||
|
|
}
|