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<T:BaseViewModel>(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();
|
}
|