import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../core/ui/base/context_theme_ext.dart'; import '../presentation/login_view_model.dart'; /// 登录页(Demo) /// /// 演示 go_router 登录守卫:点击「登录」后经由 [LoginViewModel.demoLogin] /// 触发 [GoRouter.refreshListenable],守卫重新执行并重定向到 /chat。 /// /// 正式实现时替换为完整登录流程(email/password 输入 → LoginViewModel.login)。 class LoginPage extends ConsumerWidget { const LoginPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final s = context.styles; return Scaffold( appBar: AppBar( title: const Text('登录'), automaticallyImplyLeading: false, ), body: Center( child: Column( mainAxisSize: MainAxisSize.min, children: [ Text('IM_Demo', style: s.titleMedium), const SizedBox(height: 8), Text( '未登录时任意路由均被重定向到此页 \n 主要是为了展示路由守卫的功能 \n 后续路由守卫专门处理各种跳转前的逻辑判断', style: s.bodySmall, ), const SizedBox(height: 32), FilledButton( onPressed: () => ref.read(loginViewModelProvider.notifier).demoLogin(), child: const Text('登录'), ), ], ), ), ); } }