Uses animateItemPlacement to show new Notes and update the size of current ones.

This commit is contained in:
Vitor Pamplona
2023-06-13 16:31:23 -04:00
parent 1cd39e0d8f
commit a01a060abc
2 changed files with 14 additions and 10 deletions
@@ -2,6 +2,7 @@ package com.vitorpamplona.amethyst.ui.screen
import androidx.compose.animation.Crossfade
import androidx.compose.animation.core.tween
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
@@ -152,6 +153,7 @@ fun RenderCardFeed(
}
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
private fun FeedLoaded(
state: CardFeedState.Loaded,
@@ -160,11 +162,6 @@ private fun FeedLoaded(
nav: (String) -> Unit,
routeForLastRead: String
) {
val defaultModifier = remember {
Modifier
.fillMaxWidth()
}
LazyColumn(
modifier = remember { Modifier.fillMaxSize() },
contentPadding = remember {
@@ -176,6 +173,11 @@ private fun FeedLoaded(
state = listState
) {
itemsIndexed(state.feed.value, key = { _, item -> item.id() }) { _, item ->
val defaultModifier = remember {
Modifier
.fillMaxWidth().animateItemPlacement()
}
Row(defaultModifier) {
RenderCardItem(item, accountViewModel, nav, routeForLastRead)
}
@@ -2,6 +2,7 @@ package com.vitorpamplona.amethyst.ui.screen
import androidx.compose.animation.Crossfade
import androidx.compose.animation.core.tween
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@@ -167,6 +168,7 @@ private fun WatchScrollToTop(
}
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
private fun FeedLoaded(
state: FeedState.Loaded,
@@ -179,11 +181,6 @@ private fun FeedLoaded(
Modifier
}
val defaultModifier = remember {
Modifier
.fillMaxWidth()
}
LazyColumn(
contentPadding = PaddingValues(
top = 10.dp,
@@ -192,6 +189,11 @@ private fun FeedLoaded(
state = listState
) {
itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { _, item ->
val defaultModifier = remember {
Modifier
.fillMaxWidth().animateItemPlacement()
}
Row(defaultModifier) {
NoteCompose(
item,