Zoltan Demant
08/31/2023, 7:33 AMAljosa Koren
08/31/2023, 11:53 AMZoltan Demant
08/31/2023, 12:42 PMste
08/31/2023, 6:04 PMZach Klippenstein (he/him) [MOD]
08/31/2023, 8:23 PMAlex Vanyo
08/31/2023, 9:48 PMZach Klippenstein (he/him) [MOD]
08/31/2023, 10:37 PMZoltan Demant
09/01/2023, 4:34 AM@Immutable
interface Converter<T> {
fun value(
input: String,
): T?
fun format(
value: T,
): String?
}
@Stable
interface Property<out T> {
var text: String?
val value: T?
}
private class DefaultProperty<T>(
initialInput: String?,
converter: Converter<T>,
) : Property<T> {
override var text by mutableStateOf(initialInput)
override val value by derivedStateOf {
text?.let(converter::value)
}
}