chore: Optimize node screen while scrolling (#2355)

This commit is contained in:
Joshua Soberg 2025-07-06 13:32:42 -04:00 committed by GitHub
parent fcf5ad250c
commit ffd399f44d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -30,6 +30,7 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@ -78,6 +79,10 @@ fun NodeScreen(
)
}
val isScrollInProgress by remember {
derivedStateOf { listState.isScrollInProgress }
}
Box(
modifier = Modifier
.fillMaxSize()
@ -88,14 +93,14 @@ fun NodeScreen(
) {
stickyHeader {
val animatedAlpha by animateFloatAsState(
targetValue = if (!listState.isScrollInProgress) 1.0f else 0f,
targetValue = if (!isScrollInProgress) 1.0f else 0f,
label = "alpha"
)
NodeFilterTextField(
modifier = Modifier
.fillMaxWidth()
.background(MaterialTheme.colorScheme.surfaceDim.copy(alpha = animatedAlpha))
.graphicsLayer(alpha = animatedAlpha)
.background(MaterialTheme.colorScheme.surfaceDim)
.padding(8.dp),
filterText = state.filter,
onTextChange = model::setNodeFilterText,
@ -151,7 +156,7 @@ fun NodeScreen(
AnimatedVisibility(
modifier = Modifier.align(Alignment.BottomEnd),
visible = !listState.isScrollInProgress &&
visible = !isScrollInProgress &&
connectionState.isConnected() &&
shareCapable
) {