potential fix of modals composition cancelling

This commit is contained in:
InsanusMokrassar 2023-01-13 13:21:45 +06:00
parent 7c5a9ecc3d
commit c483bb67d8
1 changed files with 72 additions and 75 deletions

View File

@ -8,8 +8,6 @@ import dev.inmo.jsuikit.modifiers.*
import org.jetbrains.compose.web.dom.*
import org.jetbrains.compose.web.renderComposableInBody
import org.w3c.dom.HTMLDivElement
import org.w3c.dom.MutationObserver
import org.w3c.dom.MutationObserverInit
import kotlin.random.Random
import kotlin.random.nextUInt
@ -31,9 +29,11 @@ fun Dialog(
removeOnHide: Boolean = true,
bodyBuilder: ContentBuilder<HTMLDivElement> = {}
) {
val drawDiv = remember { mutableStateOf(true) }
val composition = remember {
val draw = remember { mutableStateOf(true) }
remember {
renderComposableInBody {
if (draw.value) {
Div(
{
if (modifiers.none { it is UIKitModal.WithCustomAttributes }) {
@ -70,7 +70,7 @@ fun Dialog(
onDispose {
drawDiv.value = false
draw.value = false
}
}
@ -114,19 +114,16 @@ fun Dialog(
}
}
}
}
if (drawDiv.value) {
Div({
hidden()
ref {
onDispose {
composition.dispose()
draw.value = false
}
}
})
} else {
runCatching { composition.dispose() }
}
}
@Composable