diff --git a/src/layout/grid/DirBlock.tsx b/src/layout/grid/DirBlock.tsx index e3828c5..27490c0 100644 --- a/src/layout/grid/DirBlock.tsx +++ b/src/layout/grid/DirBlock.tsx @@ -40,7 +40,7 @@ export default defineComponent({ 'grid-rows-2 grid-cols-2 gap-[8%] p-[10%]': !props.big })} onContextmenu={() => { - menu.open('dock') + menu.open(props.block) }} > {selectedDir.value.list diff --git a/src/layout/useLayoutStore.ts b/src/layout/useLayoutStore.ts index 3109a6e..a05c391 100644 --- a/src/layout/useLayoutStore.ts +++ b/src/layout/useLayoutStore.ts @@ -6,6 +6,8 @@ import useResource from './background/useResource' import { globalToast } from '@/main' import jump from '@/utils/jump' import useSettingsStore from '@/settings/useSettingsStore' +import useUserStore from '@/user/useUserStore' +import request from '@/utils/request' const defaultLayout: Layout = { content: [ @@ -23,6 +25,7 @@ const defaultLayout: Layout = { export default defineStore('layout', () => { const settings = useSettingsStore() + const user = useUserStore() const state = reactive(defaultLayout) const ready = ref(false) @@ -125,6 +128,28 @@ export default defineStore('layout', () => { } } }) + + let it: any = 0 + watch( + state, + (s, _, onCleanUp) => { + const id = user.profile.id + if (!id) return + it = setTimeout(() => { + if (!id) return + request('PUT', '/api/backup', { + data: s, + returnType: 'text' + }) + }, 3000) + onCleanUp(() => { + clearTimeout(it) + }) + }, + { + deep: true + } + ) return { state, ready,