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.views.LoadingDialog import com.runt.open.mvi.views.MessageDialog import com.runt.open.mvi.views.PopupWindow /** * @author Runt(qingingrunt2010@qq.com) * @purpose * @date 6/2/24 */ abstract class LayoutView(var mViewModel:T) { val TAG : String = javaClass.simpleName @Composable fun layoutFrame(){ val isLoading by mViewModel.isLoading.collectAsState() val messageState by mViewModel.messageState.collectAsState() val popupState by mViewModel.popupState.collectAsState() layout() // 显示 loading 弹窗 LoadingDialog(isLoading) MessageDialog(messageState) PopupWindow(popupState) } @Composable protected abstract fun layout(); }