import 'dart:convert'; import 'package:aslan/chatvibe_ui/theme/chatvibe_theme.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:aslan/app_localizations.dart'; import 'package:aslan/chatvibe_ui/components/at_debounce_widget.dart'; import 'package:aslan/chatvibe_ui/components/text/at_text.dart'; import 'package:aslan/chatvibe_data/sources/local/user_manager.dart'; import 'package:aslan/chatvibe_domain/models/res/room_res.dart'; import 'package:provider/provider.dart'; import 'package:aslan/chatvibe_ui/components/at_float_ichart.dart'; import 'package:aslan/chatvibe_core/routes/at_routes.dart'; import 'package:aslan/chatvibe_core/routes/at_fluro_navigator.dart'; import 'package:aslan/chatvibe_data/sources/repositories/user_repository_impl.dart'; import 'package:aslan/chatvibe_domain/models/res/at_user_identity_res.dart'; import 'package:aslan/chatvibe_managers/gift_animation_manager.dart'; import 'package:aslan/chatvibe_managers/rtc_manager.dart'; import 'package:aslan/chatvibe_managers/user_profile_manager.dart'; import 'package:aslan/chatvibe_features/index/main_route.dart'; class ExitMinRoomPage extends StatefulWidget { bool isFz; String roomId; ExitMinRoomPage(this.isFz, this.roomId); @override _ExitMinRoomPageState createState() => _ExitMinRoomPageState(); } class _ExitMinRoomPageState extends State { ATUserIdentityRes? userIdentity; bool isLoading = true; @override void initState() { super.initState(); AccountRepository() .userIdentity( userId: Provider.of( context, listen: false, ).currenRoom?.roomProfile?.roomProfile?.userId, ) .then((v) { userIdentity = v; isLoading = false; setState(() {}); }) .catchError((e) { isLoading = false; setState(() {}); }); } @override Widget build(BuildContext context) { return Stack( alignment: Alignment.center, children: [ ATDebounceWidget( child: Container(color: Colors.transparent), onTap: () { Navigator.of(context).pop(); }, ), Column( spacing: 40.w, mainAxisAlignment: MainAxisAlignment.center, children: [ !widget.isFz ? ATDebounceWidget( child: Column( children: [ Image.asset( "atu_images/room/at_icon_room_report.png", height: 48.w, width: 48.w, ), SizedBox(height: 8.w), text( ATAppLocalizations.of(context)!.report, textColor: ChatVibeTheme.primaryLight, fontSize: 13.sp, fontWeight: FontWeight.w500, ), ], ), onTap: () { ATNavigatorUtils.push( context, "${MainRoute.report}?type=room&tageId=${widget.roomId}", replace: false, ); }, ) : Container(), ATDebounceWidget( child: Column( children: [ Image.asset( "atu_images/room/at_icon_min_room.png", width: 48.w, height: 48.w, ), SizedBox(height: 8.w), text( ATAppLocalizations.of(context)!.mInimize, fontSize: 15.sp, textColor: ChatVibeTheme.primaryLight, fontWeight: FontWeight.w500, ), ], ), onTap: () { ATFloatIchart().show(); ATNavigatorUtils.popUntil( context, ModalRoute.withName(ATRoutes.home), ); Provider.of( context, listen: false, ).disposeAnim(); }, ), ATDebounceWidget( child: Column( children: [ Image.asset( "atu_images/room/at_icon_exit_room.png", width: 48.w, height: 48.w, ), SizedBox(height: 8.w), text( ATAppLocalizations.of(context)!.exit, fontSize: 15.sp, textColor: ChatVibeTheme.primaryLight, fontWeight: FontWeight.w500, ), ], ), onTap: () { ATNavigatorUtils.goBack(context); Provider.of( context, listen: false, ).extRoom(false); }, ), ], ), ], ); } }