Extract MyLocations Widget to a separate function

This commit is contained in:
Nebojsa Vuksic 2025-07-31 10:45:24 +02:00
parent 3dcefe6fed
commit 54e147242e

View File

@ -66,8 +66,6 @@ private fun LeftColumn(
myLocationsViewModelApi: MyLocationsViewModelApi,
modifier: Modifier = Modifier,
) {
val myLocations = myLocationsViewModelApi.myLocationsFlow.collectAsState(emptyList()).value
Column(modifier) {
GroupHeader(
ComposeTemplateBundle.message("weather.app.my.locations.header.text"),
@ -78,8 +76,15 @@ private fun LeftColumn(
Spacer(modifier = Modifier.height(10.dp))
val listState = rememberSelectableLazyListState()
MyLocationsList(Modifier.fillMaxSize(), myLocationsViewModelApi)
}
}
@Composable
internal fun MyLocationsList(modifier: Modifier = Modifier, myLocationsViewModelApi: MyLocationsViewModelApi) {
val myLocations = myLocationsViewModelApi.myLocationsFlow.collectAsState(emptyList()).value
val listState = rememberSelectableLazyListState()
// JEWEL-938 This will trigger on SelectableLazyColum's `onSelectedIndexesChange` callback
LaunchedEffect(myLocations) {
var lastActiveItemIndex = -1
@ -101,7 +106,7 @@ private fun LeftColumn(
}
SelectableLazyColumn(
modifier = Modifier.fillMaxSize(),
modifier = modifier,
selectionMode = SelectionMode.Single,
state = listState,
onSelectedIndexesChange = { indices ->
@ -120,7 +125,6 @@ private fun LeftColumn(
}
}
}
}
@Composable
private fun ContentItemRow(item: Location, isSelected: Boolean, isActive: Boolean) {