UNPKG

@ovine/core

Version:

Build flexible admin system with json.

29 lines (28 loc) 842 B
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; } }