Berkeli Alashov
03/09/2024, 1:23 AMBerkeli Alashov
03/09/2024, 1:23 AM@Composable
fun SomeComponent(
viewState: ViewState
) {
SomeComponent1(
viewState.someProperty1,
) {
SomeComponent2(
viewState.someProperty2,
viewState.someProperty3,
)
SomeComponent3(viewState.someProperty4)
Text(text = viewState.someProperty5)
}
}
vs doing:
@Composable
fun SomeComponent(
viewState: ViewState
) {
SomeComponent(
someProperty1 = viewState.someProperty1,
someProperty2 = viewState.someProperty2,
someProperty3 = viewState.someProperty3,
someProperty4 = viewState.someProperty4,
someProperty5 = viewState.someProperty5,
)
}
@Composable
fun SomeComponent(
someProperty1: SomeType,
someProperty2: SomeType,
someProperty3: SomeType,
someProperty4: SomeType,
someProperty5: SomeType,
) {
SomeComponent1(
someProperty1,
) {
SomeComponent2(
someProperty2,
someProperty3,
)
SomeComponent3(someProperty4)
Text(text = someProperty5)
}
}Mark
03/09/2024, 3:47 AM@Composable
fun SomeComponent(
viewState: ViewState
) {
SomeComponent1(
someProperty1 = viewState.someProperty1,
someComponent2 = {
SomeComponent2(
viewState.someProperty2,
viewState.someProperty3,
)
},
someComponent2 = {
SomeComponent3(viewState.someProperty4)
},
someText = {
Text(text = viewState.someProperty5)
}
)
}
@Composable
fun SomeComponent1(
someProperty1: SomeType,
someComponent2: @Composable () -> Unit,
someComponent3: @Composable () -> Unit,
someText: @Composable () -> Unit,
) {
SomeComponent1(someProperty1) {
someComponent2()
someComponent3()
someText()
}
}Berkeli Alashov
03/09/2024, 11:12 AMMark
03/09/2024, 1:58 PMSomeComponent1 composable. That is, to place those three composables within the content of SomeComponent1. Think of the first composable SomeComponent in my example, as having the responsibility to pick apart the ViewState into appropriate entities.
Notice how SomeComponent1 will not change when you add/remove ViewState properties related to SomeComponent2, SomeComponent3 and SomeText.