1
This commit is contained in:
@@ -20,6 +20,7 @@ import '../screens/profile/invite_screen.dart';
|
||||
import '../screens/profile/profile_edit_screen.dart';
|
||||
import '../screens/profile/user_profile_screen.dart';
|
||||
import '../screens/profile/video_list_screens.dart';
|
||||
import '../screens/search/search_feed_screen.dart';
|
||||
import '../screens/search/search_screen.dart';
|
||||
import '../screens/search/tag_videos_screen.dart';
|
||||
import '../screens/settings/settings_screen.dart';
|
||||
@@ -28,6 +29,9 @@ import '../screens/upload/upload_screen.dart';
|
||||
import '../screens/wallet/wallet_screen.dart';
|
||||
import '../services/payment_service.dart';
|
||||
|
||||
/// 全局路由观察者:FeedScreen 等需要感知「上层路由 pop 露出本页」的场景使用
|
||||
final routeObserver = RouteObserver<PageRoute<dynamic>>();
|
||||
|
||||
/// 声明式路由(02-技术文档:go_router)
|
||||
/// /home 对游客开放(游客可浏览 Feed,观看超限 2002 时才引导登录);
|
||||
/// 受保护页面(上传/钱包/会员等)在各自页面入口校验登录态并跳 /login。
|
||||
@@ -42,6 +46,7 @@ final routerProvider = Provider<GoRouter>((ref) {
|
||||
return GoRouter(
|
||||
initialLocation: '/',
|
||||
refreshListenable: refresh,
|
||||
observers: [routeObserver],
|
||||
redirect: (context, state) {
|
||||
final auth = ref.read(authProvider);
|
||||
final loggingIn = state.matchedLocation == '/login' ||
|
||||
@@ -58,6 +63,11 @@ final routerProvider = Provider<GoRouter>((ref) {
|
||||
GoRoute(path: '/register', builder: (_, __) => const RegisterScreen()),
|
||||
GoRoute(path: '/home', builder: (_, __) => const HomeShell()),
|
||||
GoRoute(path: '/search', builder: (_, __) => const SearchScreen()),
|
||||
// 搜索结果播放(复用 Feed 池的 search 策略,支持上下滑)
|
||||
GoRoute(
|
||||
path: '/search/feed',
|
||||
builder: (_, __) => const SearchFeedScreen(),
|
||||
),
|
||||
// 标签视频页(游客可)
|
||||
GoRoute(
|
||||
path: '/tags/:name',
|
||||
|
||||
Reference in New Issue
Block a user