Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(components): [message] fix z-index & offset #8582

Merged
merged 2 commits into from Jul 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/components/message/src/instance.ts
@@ -1,13 +1,13 @@
import { shallowReactive } from 'vue'
import type { VNode } from 'vue'
import type { ComponentInternalInstance, VNode } from 'vue'
import type { Mutable } from '@element-plus/utils'
import type { MessageHandler, MessageInstance, MessageProps } from './message'
import type { MessageHandler, MessageProps } from './message'

export type MessageContext = {
id: string
vnode: VNode
handler: MessageHandler
vm: MessageInstance
vm: ComponentInternalInstance
props: Mutable<MessageProps>
}

Expand All @@ -26,5 +26,5 @@ export const getInstance = (id: string) => {
export const getLastOffset = (id: string): number => {
const { prev } = getInstance(id)
if (!prev) return 0
return prev.vm.bottom
return prev.vm.exposeProxy!.bottom
}
10 changes: 4 additions & 6 deletions packages/components/message/src/method.ts
Expand Up @@ -20,7 +20,6 @@ import type {
Message,
MessageFn,
MessageHandler,
MessageInstance,
MessageOptions,
MessageParams,
MessageParamsNormalized,
Expand Down Expand Up @@ -82,7 +81,7 @@ const createMessage = (

const props = {
...options,
zIndex: options.zIndex ?? nextZIndex(),
zIndex: nextZIndex() + options.zIndex,
id,
onClose: () => {
userOnClose?.()
Expand Down Expand Up @@ -110,14 +109,13 @@ const createMessage = (
// instances will remove this item when close function gets called. So we do not need to worry about it.
appendTo.appendChild(container.firstElementChild!)

const vm = vnode.component!.proxy as MessageInstance
const vm = vnode.component!

const handler: MessageHandler = {
// instead of calling the onClose function directly, setting this value so that we can have the full lifecycle
// for out component, so that all closing steps will not be skipped.
close: () => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore `visible` from defineExpose
vm.visible = false
vm.exposeProxy!.visible = false
},
}

Expand Down