From 98123b0039f678fc7d091e9a893c8485544e706b Mon Sep 17 00:00:00 2001 From: YunYouJun Date: Sun, 20 Aug 2023 02:28:00 +0800 Subject: [PATCH] feat: add settings page --- components/common/YlfForm.vue | 23 + components/common/YlfFormItem.vue | 33 + components/common/YlfSwitch.vue | 28 + composables/store/app.ts | 6 + composables/store/recipe.ts | 7 +- layouts/default.vue | 2 +- nuxt.config.ts | 2 +- package.json | 32 +- pages/help.vue | 85 ++ pages/user.vue | 102 +- pnpm-lock.yaml | 2260 ++++++++++++++++++----------- styles/css-vars.scss | 14 +- styles/index.scss | 5 +- utils/settings.ts | 10 + 14 files changed, 1638 insertions(+), 971 deletions(-) create mode 100644 components/common/YlfForm.vue create mode 100644 components/common/YlfFormItem.vue create mode 100644 components/common/YlfSwitch.vue create mode 100644 utils/settings.ts diff --git a/components/common/YlfForm.vue b/components/common/YlfForm.vue new file mode 100644 index 0000000..c2419ca --- /dev/null +++ b/components/common/YlfForm.vue @@ -0,0 +1,23 @@ + + + diff --git a/components/common/YlfFormItem.vue b/components/common/YlfFormItem.vue new file mode 100644 index 0000000..0613b01 --- /dev/null +++ b/components/common/YlfFormItem.vue @@ -0,0 +1,33 @@ + + + diff --git a/components/common/YlfSwitch.vue b/components/common/YlfSwitch.vue new file mode 100644 index 0000000..153e301 --- /dev/null +++ b/components/common/YlfSwitch.vue @@ -0,0 +1,28 @@ + + + diff --git a/composables/store/app.ts b/composables/store/app.ts index 7811cd5..c4e04f6 100644 --- a/composables/store/app.ts +++ b/composables/store/app.ts @@ -1,10 +1,16 @@ import { acceptHMRUpdate, defineStore } from 'pinia' +import { useStorage } from '@vueuse/core' +import { defaultSettings } from '~/utils/settings' +import { namespace } from '~/constants' export const useAppStore = defineStore('app', () => { const deferredPrompt = ref() + const settings = useStorage(`${namespace}:settings`, defaultSettings) return { deferredPrompt, + + settings, } }) diff --git a/composables/store/recipe.ts b/composables/store/recipe.ts index f70c76c..6062318 100644 --- a/composables/store/recipe.ts +++ b/composables/store/recipe.ts @@ -17,6 +17,7 @@ export type SearchMode = 'survival' | 'loose' | 'strict' export const useRecipeStore = defineStore('recipe', () => { const gtm = useGtm() + const { settings } = useAppStore() /** * 搜索关键字 @@ -24,10 +25,10 @@ export const useRecipeStore = defineStore('recipe', () => { const keyword = ref('') // can not exported - const curStuff = useStorage(`${namespace}:stuff`, new Set()) + const curStuff = settings.keepLocalData ? useStorage(`${namespace}:stuff`, new Set()) : ref(new Set()) // const curTools = ref(new Set()) - const curTool = useStorage(`${namespace}:tool`, '') - const curMode = useStorage(`${namespace}:mode`, 'loose') + const curTool = settings.keepLocalData ? useStorage(`${namespace}:tool`, '') : ref('') + const curMode = settings.keepLocalData ? useStorage(`${namespace}:mode`, 'loose') : ref('loose') const selectedStuff = computed(() => Array.from(curStuff.value)) // const selectedTools = computed(() => Array.from(curTools.value)) diff --git a/layouts/default.vue b/layouts/default.vue index 2fd79e6..ac551b2 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -1,5 +1,5 @@