import 'package:chat/data/UserData.dart'; import 'package:chat/data/constants.dart'; import 'package:chat/generated/i18n.dart'; import 'package:chat/models/group_info_model.dart'; import 'package:chat/utils/CustomUI.dart'; import 'package:chat/utils/image_util.dart'; import 'package:chat/utils/msgHandler.dart'; import 'package:chat/utils/screen.dart'; import 'package:flutter/material.dart'; import 'package:chat/models/ref_name_provider.dart'; import 'package:provider/provider.dart'; class JoinGroupConfirmPage extends StatefulWidget { final GroupInfoModel groupInfoModel; JoinGroupConfirmPage({Key key, @required this.groupInfoModel}) : super(key: key); @override _JoinGroupConfirmPageState createState() => new _JoinGroupConfirmPageState(); } class _JoinGroupConfirmPageState extends State { bool isInGroup = false; @override void initState() { super.initState(); isInGroup = widget.groupInfoModel.isGroupMember(UserData().basicInfo.userId); } @override Widget build(BuildContext context) { Widget appBar = new AppBar( title: new Text( I18n.of(context).join_group, textScaleFactor: 1.0, ), leading: CustomUI.buildCustomLeading(context), centerTitle: true, ); return Scaffold( appBar: appBar, body: SafeArea( child: _buildBody(), )); } GlobalKey key = GlobalKey(); Widget _buildBody() { Map refMap = Provider.of(context).refMap; double width = 52; var headImg = Container( margin: EdgeInsets.only(top: 9), width: width, height: width, child: WidgetUtil.getAvatarNew(widget.groupInfoModel, key, (path) { widget.groupInfoModel.image = path; })); var name = Container( margin: EdgeInsets.only(top: 8.5), alignment: Alignment.center, width: Screen.width - 40, child: Text( widget.groupInfoModel.getGroupName(refMap), textScaleFactor: 1.0, maxLines: 2, overflow: TextOverflow.ellipsis, style: TextStyle(fontSize: 15), ), ); var tips = Container( margin: EdgeInsets.only(top: 16, bottom: 20.5), alignment: Alignment.center, width: Screen.width, child: Text( I18n.of(context).total_members.replaceFirst( '/s1', widget.groupInfoModel.getMembersInGroup().length.toString()), textScaleFactor: 1.0, style: TextStyle(fontSize: 15.5, color: const Color(0xFF6F6F6F)), ), ); var divder = Container( width: Screen.width, margin: EdgeInsets.symmetric(horizontal: 16.5), decoration: BoxDecoration(border: Border(top: Constants.GreyBorderSide)), ); return Container( color: Colors.white, width: Screen.width, // margin: EdgeInsets.only(top: 11), child: SingleChildScrollView( child: Column( children: [ headImg, name, tips, divder, ///确认邀请 Container( color: Colors.white, padding: EdgeInsets.only(top: 11, bottom: 11), child: GestureDetector( onTap: isInGroup ? null : () { MsgHandler.joinGroup(widget.groupInfoModel.sessionId); }, child: Container( height: 44.5, margin: EdgeInsets.symmetric(horizontal: 40, vertical: 40), alignment: Alignment.center, decoration: BoxDecoration( color: isInGroup ? Colors.grey : Color(0xff2685FA), borderRadius: BorderRadius.all(Radius.circular(6))), child: Text( isInGroup ? I18n.of(context).joined : I18n.of(context).join_now, textScaleFactor: 1.0, style: TextStyle(color: Colors.white, fontSize: 16), ), ), )), ], ), ), ); } @override void dispose() { super.dispose(); } }