fix: update GlobalDrawer component to use direct drawer reference for improved state management

This commit is contained in:
keven1024
2025-07-07 11:20:42 +08:00
parent 668a2dd4d8
commit 9fd4943bb6

View File

@@ -1,8 +1,5 @@
<script setup lang="ts">
import {
Drawer,
DrawerContent,
} from '@/components/ui/drawer'
import { Drawer, DrawerContent } from '@/components/ui/drawer'
import { createVNode } from 'vue'
import useStore from '@/composables/useStore'
@@ -12,22 +9,26 @@ const currentDrawer = computed(() => drawer?.value?.[drawer?.value?.length - 1])
const render = computed(() => currentDrawer?.value?.render)
const Children = () =>
createVNode(render.value, {
hide: () => store?._set('drawer', drawer?.value?.slice(0, -1)),
})
createVNode(render.value, {
hide: () => store?._set('drawer', drawer?.value?.slice(0, -1)),
})
</script>
<template>
<Drawer :open="!!store?._get('drawer')?.[store?._get('drawer')?.length - 1]" @update:open="(open) => {
if (!open && drawer?.length > 0) {
store?._set('drawer', drawer?.slice(0, -1))
}
}">
<DrawerContent>
<div class="mx-auto w-full max-w-sm pb-10">
<Children />
</div>
</DrawerContent>
</Drawer>
</template>
<Drawer
:open="!!drawer?.[drawer?.length - 1]"
@update:open="
(open) => {
if (!open && drawer?.length > 0) {
store?._set('drawer', drawer?.slice(0, -1))
}
}
"
>
<DrawerContent>
<div class="mx-auto w-full max-w-sm pb-10">
<Children />
</div>
</DrawerContent>
</Drawer>
</template>