package dev.coffeeco.homenative.ui import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.gestures.scrollable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.rememberScrollState import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import dev.coffeeco.homenative.data.HomeClient import dev.coffeeco.homenative.data.StatesResItem @Composable fun ControlContainer(homeClient: HomeClient, modifier: Modifier = Modifier) { val sm = modifier .scrollable( orientation = Orientation.Vertical, state = rememberScrollState() ) .padding(horizontal = 8.dp) var itemListState by remember { mutableStateOf>(emptyList()) } val coroutineScope = rememberCoroutineScope() LaunchedEffect(coroutineScope) { itemListState = homeClient.getUsefulState() } if (itemListState.isEmpty()) { // Never visible? repeat(100) { Column { Text("aaa") } } } else { LazyVerticalGrid( modifier = sm, columns = GridCells.Adaptive(minSize = 150.dp), verticalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp), ) { itemListState.forEach { i -> item(key = i.entityId) { ControllingCard(homeClient, i) } } } } }