@@ -12,7 +12,6 @@ package me.him188.ani.app.ui.main
1212import androidx.compose.animation.AnimatedContentTransitionScope
1313import androidx.compose.animation.EnterTransition
1414import androidx.compose.animation.ExitTransition
15- import androidx.compose.animation.SharedTransitionLayout
1615import androidx.compose.foundation.background
1716import androidx.compose.foundation.layout.Box
1817import androidx.compose.foundation.layout.Row
@@ -72,8 +71,6 @@ import me.him188.ani.app.ui.exploration.schedule.ScheduleScreen
7271import me.him188.ani.app.ui.exploration.schedule.ScheduleViewModel
7372import me.him188.ani.app.ui.foundation.animation.NavigationMotionScheme
7473import me.him188.ani.app.ui.foundation.animation.ProvideAniMotionCompositionLocals
75- import me.him188.ani.app.ui.foundation.layout.LocalSharedTransitionScopeProvider
76- import me.him188.ani.app.ui.foundation.layout.SharedTransitionScopeProvider
7774import me.him188.ani.app.ui.foundation.layout.currentWindowAdaptiveInfo1
7875import me.him188.ani.app.ui.foundation.layout.desktopTitleBar
7976import me.him188.ani.app.ui.foundation.widgets.BackNavigationIconButton
@@ -149,77 +146,76 @@ private fun AniAppContentImpl(
149146 val navMotionScheme by rememberUpdatedState(NavigationMotionScheme .current)
150147 val emailLoginViewModel = viewModel<EmailLoginViewModel > { EmailLoginViewModel () }
151148
152- SharedTransitionLayout {
153- NavHost (navController, startDestination = initialRoute, modifier) {
154- val enterTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> EnterTransition ? =
155- { navMotionScheme.enterTransition }
156- val exitTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> ExitTransition ? =
157- { navMotionScheme.exitTransition }
158- val popEnterTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> EnterTransition ? =
159- { navMotionScheme.popEnterTransition }
160- val popExitTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> ExitTransition ? =
161- { navMotionScheme.popExitTransition }
149+ NavHost (navController, startDestination = initialRoute, modifier) {
150+ val enterTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> EnterTransition ? =
151+ { navMotionScheme.enterTransition }
152+ val exitTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> ExitTransition ? =
153+ { navMotionScheme.exitTransition }
154+ val popEnterTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> EnterTransition ? =
155+ { navMotionScheme.popEnterTransition }
156+ val popExitTransition: AnimatedContentTransitionScope <NavBackStackEntry >.() -> ExitTransition ? =
157+ { navMotionScheme.popExitTransition }
162158
163- composable<NavRoutes .Welcome >(
164- enterTransition = enterTransition,
165- exitTransition = exitTransition,
166- popEnterTransition = popEnterTransition,
167- popExitTransition = popExitTransition,
168- ) {
169- WelcomeScreen (
170- onClickContinue = {
171- // 从 WelcomeScreen 进入 onboarding, 最后 navigateMain 要 popupTo Welcome
172- aniNavigator.navigateOnboarding(NavRoutes .Welcome )
173- },
174- contactActions = { AniContactList () },
175- Modifier .fillMaxSize(),
176- windowInsets,
177- )
178- }
179- composable<NavRoutes .EmailLoginStart >(
180- enterTransition = enterTransition,
181- exitTransition = exitTransition,
182- popEnterTransition = popEnterTransition,
183- popExitTransition = popExitTransition,
184- ) {
185- EmailLoginStartScreen (
186- onOtpSent = {
187- aniNavigator.navigateEmailLoginVerify()
188- },
189- onBangumiLoginClick = {
190- aniNavigator.navigateBangumiAuthorize()
191- },
192- onNavigateSettings = {
193- aniNavigator.navigateSettings()
194- },
195- onNavigateBack = {
196- aniNavigator.popBackStack(NavRoutes .EmailLoginStart , true )
197- },
198- vm = emailLoginViewModel,
199- )
200- }
201- composable<NavRoutes .EmailLoginVerify >(
202- enterTransition = enterTransition,
203- exitTransition = exitTransition,
204- popEnterTransition = popEnterTransition,
205- popExitTransition = popExitTransition,
206- ) {
207- EmailLoginVerifyScreen (
208- onSuccess = {
209- aniNavigator.popBackOrNavigateToMain(mainSceneInitialPage)
210- },
211- onBangumiLoginClick = {
212- aniNavigator.navigateBangumiAuthorize()
213- },
214- onNavigateSettings = {
215- aniNavigator.navigateSettings()
216- },
217- onNavigateBack = {
218- aniNavigator.popBackStack(NavRoutes .EmailLoginVerify , true )
219- },
220- vm = emailLoginViewModel,
221- )
222- }
159+ composable<NavRoutes .Welcome >(
160+ enterTransition = enterTransition,
161+ exitTransition = exitTransition,
162+ popEnterTransition = popEnterTransition,
163+ popExitTransition = popExitTransition,
164+ ) {
165+ WelcomeScreen (
166+ onClickContinue = {
167+ // 从 WelcomeScreen 进入 onboarding, 最后 navigateMain 要 popupTo Welcome
168+ aniNavigator.navigateOnboarding(NavRoutes .Welcome )
169+ },
170+ contactActions = { AniContactList () },
171+ Modifier .fillMaxSize(),
172+ windowInsets,
173+ )
174+ }
175+ composable<NavRoutes .EmailLoginStart >(
176+ enterTransition = enterTransition,
177+ exitTransition = exitTransition,
178+ popEnterTransition = popEnterTransition,
179+ popExitTransition = popExitTransition,
180+ ) {
181+ EmailLoginStartScreen (
182+ onOtpSent = {
183+ aniNavigator.navigateEmailLoginVerify()
184+ },
185+ onBangumiLoginClick = {
186+ aniNavigator.navigateBangumiAuthorize()
187+ },
188+ onNavigateSettings = {
189+ aniNavigator.navigateSettings()
190+ },
191+ onNavigateBack = {
192+ aniNavigator.popBackStack(NavRoutes .EmailLoginStart , true )
193+ },
194+ vm = emailLoginViewModel,
195+ )
196+ }
197+ composable<NavRoutes .EmailLoginVerify >(
198+ enterTransition = enterTransition,
199+ exitTransition = exitTransition,
200+ popEnterTransition = popEnterTransition,
201+ popExitTransition = popExitTransition,
202+ ) {
203+ EmailLoginVerifyScreen (
204+ onSuccess = {
205+ aniNavigator.popBackOrNavigateToMain(mainSceneInitialPage)
206+ },
207+ onBangumiLoginClick = {
208+ aniNavigator.navigateBangumiAuthorize()
209+ },
210+ onNavigateSettings = {
211+ aniNavigator.navigateSettings()
212+ },
213+ onNavigateBack = {
214+ aniNavigator.popBackStack(NavRoutes .EmailLoginVerify , true )
215+ },
216+ vm = emailLoginViewModel,
217+ )
218+ }
223219 composable<NavRoutes .BangumiAuthorize >(
224220 enterTransition = enterTransition,
225221 exitTransition = exitTransition,
@@ -332,21 +328,21 @@ private fun AniAppContentImpl(
332328 }
333329 },
334330 ) {
335- CompositionLocalProvider (
331+ /* CompositionLocalProvider(
336332 LocalSharedTransitionScopeProvider provides SharedTransitionScopeProvider(
337333 this@SharedTransitionLayout, this,
338334 ),
339- ) {
340- val selfInfo by vm.selfInfo.collectAsState() // not -WithLifecycle
341- MainScreen (
342- page = currentPage,
343- selfInfo = selfInfo,
344- onNavigateToPage = { currentPage = it },
345- onNavigateToSettings = { aniNavigator.navigateSettings(it) },
346- onNavigateToSearch = { aniNavigator.navigateSubjectSearch() },
347- navigationLayoutType = navigationLayoutType,
348- )
349- }
335+ ) {*/
336+ val selfInfo by vm.selfInfo.collectAsState() // not -WithLifecycle
337+ MainScreen (
338+ page = currentPage,
339+ selfInfo = selfInfo,
340+ onNavigateToPage = { currentPage = it },
341+ onNavigateToSettings = { aniNavigator.navigateSettings(it) },
342+ onNavigateToSearch = { aniNavigator.navigateSubjectSearch() },
343+ navigationLayoutType = navigationLayoutType,
344+ )
345+ // }
350346 }
351347 }
352348 composable<NavRoutes .SubjectSearch >(
@@ -364,6 +360,9 @@ private fun AniAppContentImpl(
364360 onNavigateBack = {
365361 aniNavigator.popBackStack()
366362 },
363+ onNavigateToSubjectDetails = { subjectId, placeholder ->
364+ navigator.navigateSubjectDetails(subjectId, placeholder)
365+ },
367366 onNavigateToEpisodeDetails = { subjectId, episodeId ->
368367 navigator.navigateEpisodeDetails(subjectId, episodeId)
369368 },
@@ -386,38 +385,38 @@ private fun AniAppContentImpl(
386385 }
387386 SubjectDetailsViewModel (details.subjectId, placeholder)
388387 }
389- CompositionLocalProvider (
388+ /* CompositionLocalProvider(
390389 LocalSharedTransitionScopeProvider provides SharedTransitionScopeProvider(
391390 this@SharedTransitionLayout, this,
392391 ),
393- ) {
394- SubjectDetailsScreen (
395- vm,
396- onPlay = { aniNavigator.navigateEpisodeDetails(details.subjectId, it) },
397- onLoadErrorRetry = { vm.reload() },
398- onClickTag = { aniNavigator.navigateSubjectSearch(NavRoutes .SubjectSearch (tags = listOf (it.name))) },
399- windowInsets = windowInsets,
400- navigationIcon = {
401- Row {
402- BackNavigationIconButton (
403- {
404- aniNavigator.popBackStack(details, inclusive = true )
405- },
392+ ) {*/
393+ SubjectDetailsScreen (
394+ vm,
395+ onPlay = { aniNavigator.navigateEpisodeDetails(details.subjectId, it) },
396+ onLoadErrorRetry = { vm.reload() },
397+ onClickTag = { aniNavigator.navigateSubjectSearch(NavRoutes .SubjectSearch (tags = listOf (it.name))) },
398+ windowInsets = windowInsets,
399+ navigationIcon = {
400+ Row {
401+ BackNavigationIconButton (
402+ {
403+ aniNavigator.popBackStack(details, inclusive = true )
404+ },
405+ )
406+ TopAppBarActionButton (
407+ {
408+ aniNavigator.popBackOrNavigateToMain(mainSceneInitialPage)
409+ },
410+ ) {
411+ Icon (
412+ Icons .Rounded .Home ,
413+ contentDescription = null ,
406414 )
407- TopAppBarActionButton (
408- {
409- aniNavigator.popBackOrNavigateToMain(mainSceneInitialPage)
410- },
411- ) {
412- Icon (
413- Icons .Rounded .Home ,
414- contentDescription = null ,
415- )
416- }
417415 }
418- },
419- )
420- }
416+ }
417+ },
418+ )
419+ // }
421420 }
422421 composable<NavRoutes .EpisodeDetail >(
423422 enterTransition = enterTransition,
@@ -647,7 +646,6 @@ private fun AniAppContentImpl(
647646 navController.navigate(initialRoute)
648647 }
649648 }
650- }
651649 }
652650}
653651
0 commit comments