动我项目仓库 flutter:3.22 dart:3.4.4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
3.3 KiB

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<IndexPage> createState() => _IndexPageState();
}
class _IndexPageState extends State<IndexPage> {
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<UserInfo>(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跳转'),
),
],
);
}
}