```
@androidx.compose.runtime.Composable
fun $NAME$(
vm: $NAME$VM,
) {

LaunchedEffect(Unit) {
    vm.effects().collect { effect ->
        when (effect) {
            else -> {
            }
        }
    }
}

val viewState = vm.viewStateFlow().collectAsStateWithLifecycle().value

$END$
}

@dagger.hilt.android.lifecycle.HiltViewModel
class $NAME$VM @javax.inject.Inject constructor(
): androidx.lifecycle.ViewModel() {

    private val _viewStateFlow = MutableStateFlow(
        UiState()
    )

    fun viewStateFlow(): StateFlow<UiState> = _viewStateFlow.asStateFlow()
    
    private val _effects = MutableSharedFlow<$NAME$Effects>()
    fun effects() = _effects.asSharedFlow()

    data class UiState(
        val loading: Boolean = false
    )
    
    sealed interface $NAME$Effects {
    }
}
```

![Screen Template Configuration](/docs/templates/screens/screen_template_configuration.png?raw=true)
![Variable Configuration](/docs/templates/template_variable_configuration.png?raw=true)