| | |
| | | import defaultSettings from '@/settings'; |
| | | import { SettingTypeEnum } from '@/enums/SettingTypeEnum'; |
| | | import { useDynamicTitle } from '@/utils/dynamicTitle'; |
| | | import { Ref } from 'vue'; |
| | | |
| | | export const useSettingsStore = defineStore('setting', () => { |
| | | const storageSetting = JSON.parse(localStorage.getItem('layout-setting') || '{}'); |
| | | const title = ref<string>(defaultSettings.title); |
| | | const theme = ref<string>(storageSetting.theme || defaultSettings.theme); |
| | | const sideTheme = ref<string>(storageSetting.sideTheme || defaultSettings.sideTheme); |
| | | const showSettings = ref<boolean>(storageSetting.showSettings || defaultSettings.showSettings); |
| | | const topNav = ref<boolean>(storageSetting.topNav === undefined ? defaultSettings.topNav : storageSetting.topNav); |
| | | const tagsView = ref<boolean>(storageSetting.tagsView === undefined ? defaultSettings.tagsView : storageSetting.tagsView); |
| | | const fixedHeader = ref<boolean>(storageSetting.fixedHeader === undefined ? defaultSettings.fixedHeader : storageSetting.fixedHeader); |
| | | const sidebarLogo = ref<boolean>(storageSetting.sidebarLogo === undefined ? defaultSettings.sidebarLogo : storageSetting.sidebarLogo); |
| | | const dynamicTitle = ref<boolean>(storageSetting.dynamicTitle === undefined ? defaultSettings.dynamicTitle : storageSetting.dynamicTitle); |
| | | const animationEnable = ref<boolean>( |
| | | storageSetting.animationEnable === undefined ? defaultSettings.animationEnable : storageSetting.animationEnable |
| | | ); |
| | | const dark = ref<boolean>(storageSetting.dark || defaultSettings.dark); |
| | | |
| | | const prop: { [key: string]: Ref<any> } = { |
| | | title: ref<string>(''), |
| | | theme: ref<string>(storageSetting.theme || defaultSettings.theme), |
| | | sideTheme: ref<string>(storageSetting.sideTheme || defaultSettings.sideTheme), |
| | | showSettings: ref<boolean>(storageSetting.showSettings || defaultSettings.showSettings), |
| | | topNav: ref<boolean>(storageSetting.topNav === undefined ? defaultSettings.topNav : storageSetting.topNav), |
| | | tagsView: ref<boolean>(storageSetting.tagsView === undefined ? defaultSettings.tagsView : storageSetting.tagsView), |
| | | fixedHeader: ref<boolean>(storageSetting.fixedHeader === undefined ? defaultSettings.fixedHeader : storageSetting.fixedHeader), |
| | | sidebarLogo: ref<boolean>(storageSetting.sidebarLogo === undefined ? defaultSettings.sidebarLogo : storageSetting.sidebarLogo), |
| | | dynamicTitle: ref<boolean>(storageSetting.dynamicTitle === undefined ? defaultSettings.dynamicTitle : storageSetting.dynamicTitle), |
| | | animationEnable: ref<boolean>(storageSetting.animationEnable === undefined ? defaultSettings.animationEnable : storageSetting.animationEnable), |
| | | dark: ref<boolean>(storageSetting.dark || defaultSettings.dark) |
| | | theme, |
| | | sideTheme, |
| | | showSettings, |
| | | topNav, |
| | | tagsView, |
| | | fixedHeader, |
| | | sidebarLogo, |
| | | dynamicTitle, |
| | | animationEnable, |
| | | dark |
| | | }; |
| | | |
| | | const { title, theme, sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle, animationEnable, dark } = prop; |
| | | |
| | | // actions |
| | | const changeSetting = (param: { key: SettingTypeEnum; value: any }) => { |