pref: Dialog 状态

This commit is contained in:
HuanCheng65 2023-09-30 23:34:11 +08:00
parent 5db6a0cb2e
commit d951eb337e
No known key found for this signature in database
GPG Key ID: 5EC9DD60A32C7360
1 changed files with 16 additions and 12 deletions

View File

@ -320,10 +320,21 @@ fun Dialog(
buttons: @Composable (DialogScope.() -> Unit) = {}, buttons: @Composable (DialogScope.() -> Unit) = {},
content: @Composable (DialogScope.() -> Unit), content: @Composable (DialogScope.() -> Unit),
) { ) {
if (dialogState.show) { var showDialog by remember {
var isActiveClose by remember { mutableStateOf(false)
mutableStateOf(false) }
var isActiveClose by remember {
mutableStateOf(false)
}
LaunchedEffect(dialogState.show) {
if (dialogState.show) {
showDialog = true
isActiveClose = false
} else {
isActiveClose = true
} }
}
if (showDialog) {
val dialogScope = DialogScope( val dialogScope = DialogScope(
onDismiss = { onDismiss = {
isActiveClose = true isActiveClose = true
@ -334,6 +345,7 @@ fun Dialog(
onDismiss = { onDismiss = {
onDismiss?.invoke() onDismiss?.invoke()
dialogState.show = false dialogState.show = false
showDialog = false
}, },
properties = AnyPopDialogProperties( properties = AnyPopDialogProperties(
dismissOnBackPress = cancelable, dismissOnBackPress = cancelable,
@ -392,15 +404,7 @@ class DialogState private constructor(
) { ) {
constructor() : this(show = false) constructor() : this(show = false)
private var _show by mutableStateOf(show) var show by mutableStateOf(show)
var show: Boolean
get() = _show
set(value) {
if (value != _show) {
_show = value
}
}
fun show() { fun show() {
show = true show = true