Skip to content

Instantly share code, notes, and snippets.

@Skyyo
Last active October 4, 2022 08:55
Show Gist options
  • Save Skyyo/52081ce92a52323129f6d5ca699bde1c to your computer and use it in GitHub Desktop.
Save Skyyo/52081ce92a52323129f6d5ca699bde1c to your computer and use it in GitHub Desktop.
perf_snippet_15
@Composable
fun StateReadsInputLambdasScreen(viewModel: TypicalViewModel = hiltViewModel()) {
val name by viewModel.name.collectAsStateWithLifecycle()
val creditCardNumber by viewModel.creditCardNumber.collectAsStateWithLifecycle()
Column {
InputsWrapper(
name = name,
creditCardNumber = creditCardNumber,
onNameEntered = viewModel::onNameEntered,
onCreditCardNumberEntered = viewModel::onCardNumberEntered
)
}
}
@Composable
private fun InputsWrapper(
name: String,
creditCardNumber: String,
onNameEntered: (value: String) -> Unit,
onCreditCardNumberEntered: (value: String) -> Unit,
) {
var count by remember { mutableStateOf(0) }
NameTextField(name, onNameEntered)
CreditCardNumberTextField(creditCardNumber, onCreditCardNumberEntered)
Text(text = "Count: $count")
Button(onClick = { count++ }) {
Text(text = "count++")
}
}
@Composable
private fun NameTextField(
name: String,
onNameEntered: (value: String) -> Unit
) {
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