Runt
2025-12-14 caed45171d5811a0f92cea6e29d63dc818606928
libmvi/src/main/java/com/runt/open/mvi/base/LayoutView.kt
@@ -1,7 +1,15 @@
package com.runt.open.mvi.base
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import com.runt.open.mvi.base.model.BaseViewModel
import com.runt.open.mvi.data.InputMessageState
import com.runt.open.mvi.data.MessageState
import com.runt.open.mvi.views.InputDialog
import com.runt.open.mvi.views.LoadingDialog
import com.runt.open.mvi.views.MessageDialog
import com.runt.open.mvi.views.PopupWindow
/**
 * @author Runt(qingingrunt2010@qq.com)
@@ -13,5 +21,21 @@
    val TAG : String = javaClass.simpleName
    @Composable
    abstract fun layout();
    fun layoutFrame(){
        val isLoading by mViewModel.isLoading.collectAsState()
        val messageState by mViewModel.messageState.collectAsState()
        val popupState by mViewModel.popupState.collectAsState()
        layout()
        // 显示 loading 弹窗
        LoadingDialog(isLoading)
        if(messageState is MessageState){
            MessageDialog(message = messageState as MessageState)
        }else if(messageState is InputMessageState){
            InputDialog(message = messageState as InputMessageState)
        }
        PopupWindow(popupState)
    }
    @Composable
    protected abstract fun layout();
}