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
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跳转'),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|