Open EugenGedroyc opened 1 year ago
Я догадался почему происходит этот bug и хотел пофиксить. Выяснил, что onClose не вызывает перерасчёт valueComputed, а просто уничтожает модальное окно
const onClose = (event: HTMLElement) => {
props?.onClose?.(event)
destroy(el, vNode)
}
и соответственно не срабатывает в VaModal.vue:
watch(valueComputed, newValueComputed => { // watch for open/close modal
в котором вызывается функция unregisterModal() и поэтому модальное окно как бы закрывается, но остается зарегистрированным.
Следовательно тут !isLowestLevelModal.value считается, что уже есть открытые модальные окна и чтобы фон не перекрывал их, он не добавляется на новое модальное окно.
Не знаю как правильно сделать: пытаться onClose завязать на VaModal, чтобы срабатывала:
const hide = (cb?: () => void) => {
const _hide = () => {
valueComputed.value = false
cb?.()
}
props.beforeClose ? props.beforeClose(_hide) : _hide()
}
Или вообще по-другому?
Я догадался почему происходит этот bug и хотел пофиксить. Выяснил, что onClose не вызывает перерасчёт valueComputed, а просто уничтожает модальное окно
const onClose = (event: HTMLElement) => { props?.onClose?.(event) destroy(el, vNode) }
и соответственно не срабатывает в VaModal.vue:
watch(valueComputed, newValueComputed => { // watch for open/close modal
в котором вызывается функция unregisterModal() и поэтому модальное окно как бы закрывается, но остается зарегистрированным. Следовательно тут !isLowestLevelModal.value считается, что уже есть открытые модальные окна и чтобы фон не перекрывал их, он не добавляется на новое модальное окно. Не знаю как правильно сделать: пытаться onClose завязать на VaModal, чтобы срабатывала:const hide = (cb?: () => void) => { const _hide = () => { valueComputed.value = false cb?.() } props.beforeClose ? props.beforeClose(_hide) : _hide() }
Или вообще по-другому?
mb так в самом модале можно сделать.
beforeDestroy(() => {
hide()
})
@EugenGedroyc hey,
do yo plan to continue working on that? Thanks :).
My project was freezed(temporarily). And i have not the work time to close it, therefore i'm waiting the continous project. As a last resort, i`ll close it in free time but after a few months, because I'm afraid it won't be fast for me :)
close #3346
Description
Added function close() for the Modals including the confirm
But i have one bug. This string break "background overlay" if reopen modal: packages\ui\src\components\va-modal\VaModal.vue => computedOverlayStyles => if (!props.overlay || !isLowestLevelModal.value) { return }
Markup:
Types of changes