import 'package:dating_touchme_app/components/page_appbar.dart'; import 'package:dating_touchme_app/config/app_config.dart'; import 'package:dating_touchme_app/http/api.dart'; import 'package:dating_touchme_app/model/user_data.dart'; import 'package:dating_touchme_app/provide/user_info.dart'; import 'package:dating_touchme_app/router/route_paths.dart'; import 'package:dating_touchme_app/utils/global_modal.dart'; import 'package:dating_touchme_app/utils/storage.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; class IndexPage extends StatefulWidget { const IndexPage({super.key}); @override State createState() => _IndexPageState(); } class _IndexPageState extends State { UserData? user; final TextEditingController _numController = TextEditingController(); int num = 0; @override void initState() { super.initState(); const env = String.fromEnvironment('ENV', defaultValue: 'dev'); final config = AppConfig.fromEnv(env); print(config.baseUrl); } @override void dispose() { // TODO: implement dispose super.dispose(); } @override Widget build(BuildContext context) { final userInfo = Provider.of(context); return Column( children: [ ElevatedButton( onPressed: () async { final r = await GlobalModalController.I.enqueue( ModalRequest( type: 'friend_request', payload: { 'userName': '一夏', 'avatar': 'https://picsum.photos/100', 'userId': 'u1001', }, dedupeKey: 'friendReq:u1001', ttl: const Duration(minutes: 2), timeout: const Duration(seconds: 20), ), ); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('好友申请结果: ${r.action}')), ); }, child: const Text('模拟好友申请弹窗'), ), const SizedBox(height: 12), ElevatedButton( onPressed: () async { final r = await GlobalModalController.I.enqueue( ModalRequest( type: 'live_invite', payload: { 'roomId': 'room-2025', 'roomName': '技术分享房', 'inviter': '主播小栈', 'countdownSec': 10, }, dedupeKey: 'liveInvite:room-2025', priority: ModalPriority.high, ttl: const Duration(seconds: 30), timeout: const Duration(seconds: 12), ), ); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('连麦邀请结果: ${r.action}')), ); }, child: const Text('模拟直播连麦邀请'), ), const SizedBox(height: 12), ElevatedButton( onPressed: () async { context.pushNamed(RouteNames.test, queryParameters: {'a': '10', 'b': '20'}); }, child: const Text('测试go router跳转'), ), ], ); } }