Skip to content

Commit 1dc6dc6

Browse files
committed
fix: reduce recompositions in mobile view using derivedStateOf
1 parent fca03c6 commit 1dc6dc6

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

composeApp/src/wasmJsMain/kotlin/org/nsh07/nsh07/ui/homeScreen/AppHomeScreen.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,6 @@ fun AppHomeScreen(
143143
val scrolledUp by derivedStateOf { listState.lastScrolledForward }
144144

145145
val showTopBar by remember { derivedStateOf { listState.firstVisibleItemIndex > 1 } }
146-
val experienceSectionVisible by remember { derivedStateOf { listState.firstVisibleItemIndex in paragraphCount + 2..<paragraphCount + experienceCount + 3 } }
147-
val projectsSectionsVisible by remember { derivedStateOf { listState.firstVisibleItemIndex in paragraphCount + experienceCount + 3..1000 } }
148146

149147
val scrollBehavior = pinnedScrollBehavior()
150148
val hazeState = rememberHazeState(true)
@@ -160,10 +158,14 @@ fun AppHomeScreen(
160158
enter = slideInVertically(motionScheme.slowSpatialSpec(), initialOffsetY = { -it }),
161159
exit = slideOutVertically(motionScheme.slowSpatialSpec(), targetOffsetY = { -it })
162160
) {
163-
val topBarContent = when {
164-
experienceSectionVisible -> 1
165-
projectsSectionsVisible -> 2
166-
else -> 0
161+
val topBarContent by remember {
162+
derivedStateOf {
163+
when (listState.firstVisibleItemIndex) {
164+
in paragraphCount + 2..<paragraphCount + experienceCount + 3 -> 1
165+
in paragraphCount + experienceCount + 3..100 -> 2
166+
else -> 0
167+
}
168+
}
167169
}
168170
TopAppBar(
169171
title = {

0 commit comments

Comments
 (0)