From 2b1992e03a37fa9c6a5f3a05286cd18610c3c9b9 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Tue, 26 Mar 2024 18:39:39 +0100 Subject: [PATCH] Fix pull to refresh not available when displaying the no item placeholder in TimelineTab --- .../app/compose/timelime/TimelineTab.kt | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/appcompose/src/main/java/com/readrops/app/compose/timelime/TimelineTab.kt b/appcompose/src/main/java/com/readrops/app/compose/timelime/TimelineTab.kt index 79de5f8d..991fa6f6 100644 --- a/appcompose/src/main/java/com/readrops/app/compose/timelime/TimelineTab.kt +++ b/appcompose/src/main/java/com/readrops/app/compose/timelime/TimelineTab.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState @@ -290,6 +291,7 @@ object TimelineTab : Tab { Box( modifier = Modifier .padding(paddingValues) + .fillMaxSize() .nestedScroll(swipeState.nestedScrollConnection) ) { when { @@ -331,7 +333,23 @@ object TimelineTab : Tab { ) } } + + PullToRefreshContainer( + state = swipeState, + modifier = Modifier.align(Alignment.TopCenter) + ) } else { + // Empty lazyColumn to let the pull to refresh be usable + // when the no item placeholder is displayed + LazyColumn( + modifier = Modifier.fillMaxSize() + ) {} + + PullToRefreshContainer( + state = swipeState, + modifier = Modifier.align(Alignment.TopCenter) + ) + Placeholder( text = stringResource(R.string.no_item), painter = painterResource(R.drawable.ic_rss_feed_grey) @@ -339,11 +357,6 @@ object TimelineTab : Tab { } } } - - PullToRefreshContainer( - state = swipeState, - modifier = Modifier.align(Alignment.TopCenter) - ) } } }