import { defineStore } from 'pinia'; import defaultSettings from '@/settings'; import { useStorage } from '@vueuse/core'; export const useSettingsStore = defineStore('setting', () => { // state const tagsView = useStorage('tagsView', defaultSettings.tagsView); const title = ref(defaultSettings.title); const showSettings = ref(defaultSettings.showSettings); const fixedHeader = ref(defaultSettings.fixedHeader); const sidebarLogo = ref(defaultSettings.sidebarLogo); const showVideo = ref(defaultSettings.showVideo); const sidebarDark = ref(defaultSettings.sidebarDark); const layout = useStorage('layout', defaultSettings.layout); // actions function changeSetting(param: { key: string; value: any }) { const { key, value } = param; switch (key) { case 'showSettings': showSettings.value = value; break; case 'fixedHeader': fixedHeader.value = value; break; case 'tagsView': tagsView.value = value; break; case 'sidevarLogo': sidebarLogo.value = value; break; case 'showVideo': showVideo.value = value; break; case 'sidebarDark': sidebarDark.value = value; break; case 'layout': layout.value = value; break; default: break; } } return { title, showSettings, tagsView, fixedHeader, sidebarLogo, showVideo, sidebarDark, layout, changeSetting }; });