settings.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import defaultSettings from '@/settings'
  2. import {useDynamicTitle} from '@/utils/dynamicTitle'
  3. const {sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle} = defaultSettings
  4. const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
  5. const useSettingsStore = defineStore(
  6. 'settings',
  7. {
  8. state: () => ({
  9. title: '',
  10. theme: storageSetting.theme || '#FF0066',
  11. sideTheme: storageSetting.sideTheme || sideTheme,
  12. showSettings: showSettings,
  13. topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
  14. tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
  15. fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
  16. sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
  17. dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle,
  18. isDark: false
  19. }),
  20. actions: {
  21. // レイアウト設定を変更
  22. changeSetting(data) {
  23. const {key, value} = data
  24. if (this.hasOwnProperty(key)) {
  25. this[key] = value
  26. }
  27. },
  28. // ウェブページタイトルを設定
  29. setTitle(title) {
  30. this.title = title
  31. useDynamicTitle()
  32. }
  33. }
  34. })
  35. export default useSettingsStore