Skip to content

[FEATURE] Add Pull to Next at the bottom of Feed#1007

Open
paolorotolo wants to merge 3 commits intoprof18:mainfrom
paolorotolo:feature/pull-to-next
Open

[FEATURE] Add Pull to Next at the bottom of Feed#1007
paolorotolo wants to merge 3 commits intoprof18:mainfrom
paolorotolo:feature/pull-to-next

Conversation

@paolorotolo
Copy link

This PR implements a new Pull to Next feature.

When reaching the bottom of a feed in Category - Source mode, it's now possible to pull up to preview the next unread feed and let go to navigate to it.

Demo

Navigation between categories

navigate.categories.mov

Navigation between Feed sources

Screen.Recording.2026-03-10.at.16.44.46.mov

# Conflicts:
#	sharedUI/src/commonMain/kotlin/com/prof18/feedflow/shared/ui/home/components/HomeScreenContent.kt
@paolorotolo paolorotolo force-pushed the feature/pull-to-next branch from 1c2428e to 8a49bcb Compare March 16, 2026 14:50
@paolorotolo
Copy link
Author

@prof18 conflict solved, it's ready for review now!

Copy link
Owner

@prof18 prof18 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for the contribution, really appreciated and sick ui! 💪

I left some minor comments! 🙏 Let me know if you can tackle them, otherwise no problem, I can take them 🙏

Comment on lines +143 to +145
// nextFeedFilterMutableState.update {
// getNextFeedFilterOrNullUseCase(feedFilter)
// }
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// nextFeedFilterMutableState.update {
// getNextFeedFilterOrNullUseCase(feedFilter)
// }

let's remove it :D I guess it's a leftover

import com.prof18.feedflow.shared.domain.feed.FeedSourcesRepository
import kotlinx.coroutines.flow.first

class GetNextFeedFilterOrNullUseCase internal constructor(
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind adding a test for this usecase? You can use the existing infra with koin to use a real FeedSourcesRepository.

Otherwise let me know, i can add it later no problem at all

val title: String,
) : NextFeedDisplayState()

class NextFeedDisplayDisabledState : NextFeedDisplayState()
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be a data object :)


@Stable
sealed class NextFeedDisplayState {
class NextFeedDisplayEnabledState(
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't be a data class? To help compose with recomposition etc

)
Icon(
imageVector = Icons.Default.KeyboardArrowUp,
contentDescription = "Next",
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should localize that :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants