fix(components): [dialog] set destory-on-close drag position abnormal (#7822)

This commit is contained in:
btea 2022-05-24 13:44:10 +08:00 committed by GitHub
parent 7ba931bee7
commit 769148b780
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 11 deletions

View File

@ -40,10 +40,10 @@
</template>
<script lang="ts" setup>
import { inject } from 'vue'
import { computed, inject } from 'vue'
import { ElIcon } from '@element-plus/components/icon'
import { FOCUS_TRAP_INJECTION_KEY } from '@element-plus/components/focus-trap'
import { useLocale } from '@element-plus/hooks'
import { useDraggable, useLocale } from '@element-plus/hooks'
import { CloseComponents, composeRefs } from '@element-plus/utils'
import { dialogInjectionKey } from '@element-plus/tokens'
import { dialogContentEmits, dialogContentProps } from './dialog-content'
@ -52,11 +52,14 @@ const { t } = useLocale()
const { Close } = CloseComponents
defineOptions({ name: 'ElDialogContent' })
defineProps(dialogContentProps)
const props = defineProps(dialogContentProps)
defineEmits(dialogContentEmits)
const { dialogRef, headerRef, bodyId, ns, style } = inject(dialogInjectionKey)!
const { focusTrapRef } = inject(FOCUS_TRAP_INJECTION_KEY)!
const composedDialogRef = composeRefs(focusTrapRef, dialogRef)
const draggable = computed(() => props.draggable)
useDraggable(dialogRef, headerRef, draggable)
</script>

View File

@ -70,12 +70,7 @@
<script lang="ts" setup>
import { computed, provide, ref, useSlots } from 'vue'
import { ElOverlay } from '@element-plus/components/overlay'
import {
useDeprecated,
useDraggable,
useNamespace,
useSameTarget,
} from '@element-plus/hooks'
import { useDeprecated, useNamespace, useSameTarget } from '@element-plus/hooks'
import { dialogInjectionKey } from '@element-plus/tokens'
import ElFocusTrap from '@element-plus/components/focus-trap'
import ElDialogContent from './dialog-content.vue'
@ -136,8 +131,6 @@ const overlayEvent = useSameTarget(onModalClick)
const draggable = computed(() => props.draggable && !props.fullscreen)
useDraggable(dialogRef, headerRef, draggable)
defineExpose({
/** @description whether the dialog is visible */
visible,