fix: skip deleting portal root node to avoid race condition

This commit is contained in:
Kristaps Fabians Geikins
2025-06-20 17:22:32 +03:00
parent 0933dd5e5f
commit 415fca4383
@@ -1,6 +1,5 @@
import {
Teleport,
computed,
defineComponent,
getCurrentInstance,
h,
@@ -51,7 +50,6 @@ export let Portal = defineComponent({
},
setup(props, { slots, attrs }) {
let element = ref<HTMLElement | null>(null)
let ownerDocument = computed(() => getOwnerDocument(element))
let forcePortalRoot = usePortalRoot()
let groupContext = inject(PortalGroupContext, null)
@@ -90,16 +88,6 @@ export let Portal = defineComponent({
didRegister = true
})
onUnmounted(() => {
let root = ownerDocument.value?.getElementById('headlessui-portal-root')
if (!root) return
if (myTarget.value !== root) return
if (myTarget.value.children.length <= 0) {
myTarget.value.parentElement?.removeChild(myTarget.value)
}
})
return () => {
if (!ready.value) return null
if (myTarget.value === null) return null