This commit is contained in:
root
2026-10-16 13:51:00 +08:00
parent 6bf949949c
commit 8fc899d0a9
3830 changed files with 11228 additions and 188377 deletions
+8 -16
View File
@@ -31,11 +31,18 @@ import '../services/payment_service.dart';
/// /home 对游客开放(游客可浏览 Feed,观看超限 2002 时才引导登录);
/// 受保护页面(上传/钱包/会员等)在各自页面入口校验登录态并跳 /login。
final routerProvider = Provider<GoRouter>((ref) {
final auth = ref.watch(authProvider);
// 认证状态变化仅触发 redirect 重估(refreshListenable),
// 绝不能 watch 后重建 GoRouter —— 重建会把当前路由重置回启动页,
// 启动页再次执行 bootstrap → 状态再变化 → 无限循环(卡死在启动页)。
final refresh = ValueNotifier<int>(0);
ref.listen(authProvider, (_, __) => refresh.value++);
ref.onDispose(refresh.dispose);
return GoRouter(
initialLocation: '/',
refreshListenable: refresh,
redirect: (context, state) {
final auth = ref.read(authProvider);
final loggingIn = state.matchedLocation == '/login' ||
state.matchedLocation == '/register';
// 启动恢复未完成:停在 splash
@@ -116,18 +123,3 @@ final routerProvider = Provider<GoRouter>((ref) {
],
);
});
/// 兜底页面(迭代期占位)
class PlaceholderScreen extends StatelessWidget {
const PlaceholderScreen({super.key, required this.title});
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(title)),
body: Center(child: Text(title, style: const TextStyle(fontSize: 16))),
);
}
}