Skip to content

Instantly share code, notes, and snippets.

@Skyyo
Last active October 4, 2022 08:57
Show Gist options
  • Save Skyyo/7eae0b7100f3dac6e1961082cdc0ec59 to your computer and use it in GitHub Desktop.
Save Skyyo/7eae0b7100f3dac6e1961082cdc0ec59 to your computer and use it in GitHub Desktop.
perf_snippet_19
@Composable
fun StateReadsLowerStateReadsOptimizedScreen(viewModel: TypicalViewModel = hiltViewModel()) {
ColumnWrapper {
InputsWrapper(
nameStateFlow = viewModel.name,
creditCardNumberStateFlow = viewModel.creditCardNumber,
onNameEntered = viewModel::onNameEntered,
onCreditCardNumberEntered = viewModel::onCardNumberEntered
)
}
}
@Composable
private fun InputsWrapper(
nameStateFlow: StateFlow<String>,
creditCardNumberStateFlow: StateFlow<String>,
onNameEntered: (value: String) -> Unit,
onCreditCardNumberEntered: (value: String) -> Unit,
) {
var count by remember { mutableStateOf(0) }
NameTextField(nameStateFlow, onNameEntered)
..
}
@Composable
private fun NameTextField(
nameStateFlow: StateFlow<String>,
onNameEntered: (value: String) -> Unit
) {
val name by nameStateFlow.collectAsStateWithLifecycle()
TextField(
value = name,
onValueChange = onNameEntered,
label = { Text("name") },
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment