@@ -20,12 +20,10 @@ import androidx.compose.material3.Text
2020import androidx.compose.runtime.Composable
2121import androidx.compose.runtime.LaunchedEffect
2222import androidx.compose.runtime.getValue
23- import androidx.compose.runtime.remember
2423import androidx.compose.runtime.rememberUpdatedState
2524import androidx.compose.ui.Alignment
2625import androidx.compose.ui.Modifier
2726import androidx.compose.ui.res.stringResource
28- import androidx.compose.ui.unit.Density
2927import androidx.compose.ui.unit.dp
3028import com.slack.circuit.codegen.annotations.CircuitInject
3129import dagger.hilt.components.SingletonComponent
@@ -34,6 +32,7 @@ import org.cru.godtools.R
3432import org.cru.godtools.base.ui.circuit.screen.dashboard.page.ToolsScreen
3533import org.cru.godtools.ui.banner.Banners
3634import org.cru.godtools.ui.dashboard.LocalizationSettingsBox
35+ import org.cru.godtools.ui.dashboard.rememberPinLastItemBottomArrangement
3736import org.cru.godtools.ui.dashboard.tools.ToolsPresenter.UiEvent
3837import org.cru.godtools.ui.dashboard.tools.ToolsPresenter.UiState
3938import org.cru.godtools.ui.tools.SquareToolCard
@@ -50,24 +49,15 @@ internal fun ToolsLayout(state: UiState, modifier: Modifier = Modifier) {
5049
5150 val columnState = rememberLazyListState()
5251 LaunchedEffect (state.banner?.type) { if (state.banner != null ) columnState.animateScrollToItem(0 ) }
52+ val verticalArrangement = if (state.mode == UiState .Mode .PERSONALIZATION ) {
53+ rememberPinLastItemBottomArrangement(state.tools.size)
54+ } else {
55+ Arrangement .Top
56+ }
5357
5458 LazyColumn (
5559 state = columnState,
56- verticalArrangement = remember {
57- object : Arrangement .Vertical {
58- override fun Density.arrange (totalSize : Int , sizes : IntArray , outPositions : IntArray ) {
59- var currentOffset = 0
60- sizes.forEachIndexed { index, size ->
61- if (index == sizes.lastIndex) {
62- outPositions[index] = maxOf(currentOffset, totalSize - size)
63- } else {
64- outPositions[index] = currentOffset
65- currentOffset + = size
66- }
67- }
68- }
69- }
70- },
60+ verticalArrangement = verticalArrangement,
7161 modifier = modifier.fillMaxHeight()
7262 ) {
7363 if (! state.dataLoaded) return @LazyColumn
0 commit comments