import 'package:dio/dio.dart'; import 'package:e2ee_chat/common/api.dart'; import 'package:e2ee_chat/common/global.dart'; import 'package:e2ee_chat/l10n/localization_intl.dart'; import 'package:e2ee_chat/presenter/login.dart'; import 'package:e2ee_chat/presenter/theme.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fluttertoast/fluttertoast.dart'; class AddFriendView extends StatefulWidget { @override _AddFriendViewState createState() => _AddFriendViewState(); } class _AddFriendViewState extends State { TextEditingController _unameController = new TextEditingController(); GlobalKey _formKey = new GlobalKey(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(GmLocalizations.of(context).searchUser)), body: Padding( padding: const EdgeInsets.all(16.0), child: Form( key: _formKey, autovalidateMode: AutovalidateMode.always, // TODO: what is AutovalidateMode? child: Column( children: [ TextFormField( controller: _unameController, decoration: InputDecoration( labelText: GmLocalizations.of(context).userName, hintText: GmLocalizations.of(context).userNameOrEmail, prefixIcon: Icon(Icons.search), ), validator: (v) { return v!.trim().isNotEmpty ? null : GmLocalizations.of(context).userNameRequired; }), Padding( padding: const EdgeInsets.only(top: 25), child: ConstrainedBox( constraints: BoxConstraints.expand(height: 55.0), child: ElevatedButton( style: ButtonStyle( foregroundColor: MaterialStateProperty.all(Provider.of(context).theme), //TODO: something wrong with text color textStyle: MaterialStateProperty.all(TextStyle(color: Colors.white)), ), onPressed: _findUser, child: Text(GmLocalizations.of(context).search), ), ), ), ], ), ), ), ); } void _findUser() async { // 提交前,先验证各个表单字段是否合法 if ((_formKey.currentState as FormState).validate()) { Fluttertoast.showToast(msg: GmLocalizations.of(context).loading); bool result = await Api().addFriend(_unameController.text); if (!result) { Fluttertoast.showToast(msg: "发送好友申请失败"); } else { Fluttertoast.showToast(msg: "好友申请已发送"); } } // TODO: get user details } }