/** * Application configuration */ import projectSetting from '/@/settings/projectSetting'; import { updateHeaderBgColor, updateSidebarBgColor } from '/@/logics/theme/updateBackground'; import { updateColorWeak } from '/@/logics/theme/updateColorWeak'; import { updateGrayMode } from '/@/logics/theme/updateGrayMode'; import { changeTheme } from '/@/logics/theme'; import { appStore } from '/@/store/modules/app'; import { localeStore } from '/@/store/modules/locale'; import { getCommonStoragePrefix, getStorageShortName } from '/@/utils/env'; import { primaryColor } from '../../build/config/themeConfig'; // Initial project configuration export function initAppConfigStore() { try { const { colorWeak, grayMode, themeColor, headerSetting: { bgColor: headerBgColor } = {}, menuSetting: { bgColor } = {}, } = projectSetting; if (themeColor && themeColor !== primaryColor) { changeTheme(themeColor); } headerBgColor && updateHeaderBgColor(headerBgColor); bgColor && updateSidebarBgColor(bgColor); grayMode && updateGrayMode(grayMode); colorWeak && updateColorWeak(colorWeak); } catch (error) { console.log(error); } appStore.commitProjectConfigState(projectSetting); localeStore.initLocale(); setTimeout(() => { clearObsoleteStorage(); }, 16); } /** * As the version continues to iterate, there will be more and more cache keys stored in localStorage. * This method is used to delete useless keys */ export function clearObsoleteStorage() { const commonPrefix = getCommonStoragePrefix(); const shortPrefix = getStorageShortName(); [localStorage, sessionStorage].forEach((item: Storage) => { Object.keys(item).forEach((key) => { if (key && key.startsWith(commonPrefix) && !key.startsWith(shortPrefix)) { item.removeItem(key); } }); }); }