Skip to content

Commit

Permalink
implement infinite post list in trending page
Browse files Browse the repository at this point in the history
  • Loading branch information
Hiebeler committed Feb 17, 2025
1 parent 317498b commit fee4aa3
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,7 @@ import androidx.compose.material.icons.outlined.Photo
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.pulltorefresh.PullToRefreshBox
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.daniebeler.pfpixelix.domain.model.Post
Expand Down Expand Up @@ -43,6 +38,7 @@ fun InfinitePostsList(
changeView: (view: ViewEnum) -> Unit = {},
isFirstItemLarge: Boolean = false,
postsCount: Int? = null,
contentPaddingBottom: Dp = 4.dp
) {
val lazyListState = rememberLazyListState()

Expand All @@ -59,7 +55,7 @@ fun InfinitePostsList(
onRefresh = onRefresh,
) {
LazyColumn(
verticalArrangement = Arrangement.spacedBy(4.dp), state = lazyListState, contentPadding = PaddingValues(top = if (postsCount != null) {0.dp} else {12.dp} )
verticalArrangement = Arrangement.spacedBy(4.dp), state = lazyListState, contentPadding = PaddingValues(top = if (postsCount != null) {0.dp} else {12.dp}, bottom = contentPaddingBottom )
) {
postsCount?.let {
item {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
package com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_posts

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.systemBars
import androidx.compose.foundation.layout.waterfall
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.daniebeler.pfpixelix.di.injectViewModel
import com.daniebeler.pfpixelix.ui.composables.InfinitePostsGrid
import com.daniebeler.pfpixelix.ui.composables.InfinitePostsList
import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum
import com.daniebeler.pfpixelix.ui.composables.states.EmptyState
import org.jetbrains.compose.resources.stringResource
import pixelix.app.generated.resources.Res
Expand All @@ -26,15 +37,21 @@ fun TrendingPostsComposable(
}

Box(modifier = Modifier.fillMaxSize()) {
InfinitePostsGrid(items = viewModel.trendingState.trendingPosts,
InfinitePostsList(
items = viewModel.trendingState.trendingPosts,
isLoading = viewModel.trendingState.isLoading,
isRefreshing = viewModel.trendingState.isRefreshing,
endReached = true,
error = viewModel.trendingState.error,
emptyMessage = EmptyState(heading = stringResource(Res.string.no_trending_posts)),
endReached = false,
view = ViewEnum.Grid,
changeView = { },
isFirstItemLarge = true,
itemGetsDeleted = { },
getItemsPaginated = { },
onRefresh = { viewModel.getTrendingPosts(range, true) },
navController = navController,
onRefresh = {
viewModel.getTrendingPosts(range, true)
})
postGetsUpdated = { },
contentPaddingBottom = 90.dp
)
}
}

0 comments on commit fee4aa3

Please sign in to comment.