feat: Add dedicated pinned bookmarks screen with paginated data loading

- Add getPinnedLinksPaged() query to LinkDao for paginated pinned link retrieval
- Implement getPinnedLinksStream() in LinkRepository with PagingConfig for efficient data loading
- Create PinnedScreen navigation route and composable in NavGraph
- Add "Épinglés" (Pinned) drawer navigation item with PushPin icon in FeedScreen
- Wire navigation callbacks from FeedScreen through NavGraph to PinnedScreen
This commit is contained in:
2026-02-09 14:43:27 -05:00
parent 98f2ef2e7e
commit c8a9e6653b
7 changed files with 212 additions and 0 deletions
@@ -43,6 +43,7 @@ sealed class Screen(val route: String) {
object Settings : Screen("settings")
object Help : Screen("help")
object DeadLinks : Screen("dead_links")
object Pinned : Screen("pinned")
}
@Composable
@@ -128,6 +129,7 @@ fun AppNavGraph(
onNavigateToRandom = { },
onNavigateToHelp = { navController.navigate(Screen.Help.route) },
onNavigateToDeadLinks = { navController.navigate(Screen.DeadLinks.route) },
onNavigateToPinned = { navController.navigate(Screen.Pinned.route) },
initialTagFilter = tag,
initialCollectionId = collectionId
)
@@ -270,5 +272,16 @@ fun AppNavGraph(
}
)
}
composable(
route = Screen.Pinned.route
) {
com.shaarit.presentation.pinned.PinnedScreen(
onNavigateBack = { navController.popBackStack() },
onNavigateToEdit = { linkId ->
navController.navigate(Screen.Edit.createRoute(linkId))
}
)
}
}
}