@@ -32,6 +32,7 @@ import me.ash.reader.ui.component.base.*
3232import me.ash.reader.ui.ext.collectAsStateValue
3333import me.ash.reader.ui.page.common.RouteName
3434import me.ash.reader.ui.page.home.HomeViewModel
35+ import me.ash.reader.ui.page.home.reading.ReadingPage
3536
3637@OptIn(
3738 com.google.accompanist.pager.ExperimentalPagerApi ::class ,
@@ -41,6 +42,8 @@ import me.ash.reader.ui.page.home.HomeViewModel
4142fun FlowPage (
4243 navController : NavHostController ,
4344 flowViewModel : FlowViewModel = hiltViewModel(),
45+ isExpandedScreen : Boolean ,
46+ onArticleClick : ((ArticleWithFeed ) -> Unit )? = null,
4447 homeViewModel : HomeViewModel ,
4548) {
4649 val keyboardController = LocalSoftwareKeyboardController .current
@@ -145,7 +148,9 @@ fun FlowPage(
145148 onSearch = false
146149 }
147150
151+ val width = if (isExpandedScreen) Modifier .width(334 .dp) else Modifier
148152 RYScaffold (
153+ modifier = width,
149154 topBarTonalElevation = topBarTonalElevation.value.dp,
150155 containerTonalElevation = articleListTonalElevation.value.dp,
151156 navigationIcon = {
@@ -290,8 +295,12 @@ fun FlowPage(
290295 isScrollInProgress = { listState.isScrollInProgress },
291296 onClick = {
292297 onSearch = false
293- navController.navigate(" ${RouteName .READING } /${it.article.id} " ) {
294- launchSingleTop = true
298+ if (onArticleClick == null ) {
299+ navController.navigate(" ${RouteName .READING } /${it.article.id} " ) {
300+ launchSingleTop = true
301+ }
302+ } else {
303+ onArticleClick(it)
295304 }
296305 },
297306 onSwipeStartToEnd = onSwipeStartToEnd,
@@ -327,3 +336,28 @@ fun FlowPage(
327336 }
328337 )
329338}
339+
340+ @Composable
341+ fun FlowWithArticleDetailsScreen (
342+ navController : NavHostController ,
343+ isExpandedScreen : Boolean ,
344+ homeViewModel : HomeViewModel ,
345+ flowViewModel : FlowViewModel ,
346+ ) {
347+ var articleId : String? by remember {
348+ mutableStateOf(null )
349+ }
350+
351+ Row {
352+ FlowPage (
353+ navController = navController,
354+ isExpandedScreen = isExpandedScreen,
355+ onArticleClick = {
356+ articleId = it.article.id
357+ },
358+ homeViewModel = homeViewModel,
359+ flowViewModel = flowViewModel,
360+ )
361+ ReadingPage (navController = navController, homeViewModel = homeViewModel, isExpandedScreen = isExpandedScreen, articleId = articleId)
362+ }
363+ }
0 commit comments