@ovine/core
Version:
Build flexible admin system with json.
29 lines (28 loc) • 842 B
JavaScript
import { defaultsDeep } from 'lodash';
import { withTheme } from 'styled-components';
import { storage } from "../constants";
import presetThemes from "../styled/themes";
import { getStore } from "../utils/store";
export const withAppTheme = withTheme;
export class AppTheme {
constructor(appThemes) {
this.themes = presetThemes;
this.themes = defaultsDeep(appThemes, this.themes);
}
getName() {
const currTheme = getStore(storage.appTheme) || process.env.INIT_THEME || 'cxd';
return currTheme;
}
initThemes(appThemes) {
this.themes = defaultsDeep(appThemes, this.themes);
}
getTheme() {
const currTheme = this.getName();
return (this.themes[currTheme] || {
name: 'cxd',
});
}
getAllThemes() {
return this.themes;
}
}