import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:tangheem/api/tangheem_user_api_client.dart'; import 'package:tangheem/classes/colors.dart'; import 'package:tangheem/classes/utils.dart'; import 'package:tangheem/extensions/int_extensions.dart'; import 'package:tangheem/extensions/string_extensions.dart'; import 'package:tangheem/extensions/widget_extensions.dart'; import 'package:tangheem/widgets/common_textfield_widget.dart'; import 'package:tangheem/widgets/new/CommonHeader.dart'; class ContactUsScreen extends StatefulWidget { static const String routeName = "/contact_us"; ContactUsScreen({Key key}) : super(key: key); @override _ContactUsScreenState createState() { return _ContactUsScreenState(); } } class _ContactUsScreenState extends State { TextEditingController _firstNameController = TextEditingController(); TextEditingController _lastNameController = TextEditingController(); TextEditingController _emailController = TextEditingController(); TextEditingController _mobileNumberController = TextEditingController(); TextEditingController _descriptionController = TextEditingController(); @override void initState() { super.initState(); } void sendFeedback(String _firstName, String _lastName, String _email, String _phone, String _description) async { Utils.showLoading(context); try { await TangheemUserApiClient().contactUs(_firstName, _lastName, _email, _phone, _description); Utils.showToast("تم إرسال الطلب بنجاح"); Utils.hideLoading(context); Navigator.pop(context); } catch (ex) { if (mounted) Utils.handleException(ex, null); Utils.hideLoading(context); } } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { bool isPortrait = MediaQuery.of(context).orientation == Orientation.portrait; Widget _header = SizedBox(height: isPortrait ? null : double.infinity, width: double.infinity, child: CommonHeader("اتصل بنا", "assets/icons/new/contact_bg.jpg", Color(0xff416A6C))); Widget _inputDataList = Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: [ "نسعد بتواصلكم بالمساهمة في تطوير المشروع وطرح المقترحات التي حقق جودته. الرجاء تعبئة البيانات لكي تصل إلينا بشكل مناسب، وسيتم التواصل معكم في أقرب وقت ممكن." .toText(13, color: ColorConsts.darkText, textAlign: TextAlign.center), 32.height, CommonTextFieldWidget(hint: "الاسم الأول", controller: _firstNameController, fillColor: Colors.white, isBorder: true), 8.height, CommonTextFieldWidget(hint: "الاسم الأخير", controller: _lastNameController, fillColor: Colors.white, isBorder: true), 8.height, CommonTextFieldWidget(hint: "البريد الإلكتروني", controller: _emailController, fillColor: Colors.white, isBorder: true, isEmail: true), 8.height, CommonTextFieldWidget(hint: " رقم الاتصال${" (" + ("9xx") + " xxxxxxxxx)"}", controller: _mobileNumberController, fillColor: Colors.white, isBorder: true), 8.height, CommonTextFieldWidget(hint: "التفاصيل", controller: _descriptionController, maxLines: 5, fillColor: Colors.white, isBorder: true), 22.height, SizedBox( width: double.infinity, height: 50, child: TextButton( onPressed: () { if (_firstNameController.text.length < 1) { Utils.showToast("يرجى إدخال الاسم الأول"); return; } if (_lastNameController.text.length < 1) { Utils.showToast("يرجى إدخال الاسم الأخير"); return; } if (_emailController.text.length < 1) { Utils.showToast("يرجى إدخال البريد الإلكتروني"); return; } if (_mobileNumberController.text.length < 1) { Utils.showToast("يرجى إدخال رقم الهاتف"); return; } if (_mobileNumberController.text.length != 12) { Utils.showToast("صيغة الرقم غير صحيحة"); return; } if (_descriptionController.text.length < 1) { Utils.showToast("يرجى إدخال التفاصيل"); return; } if (_descriptionController.text.trim().length < 1) { Utils.showToast("يرجى إدخال التفاصيل"); return; } if (!_emailController.text.isValidEmail()) { Utils.showToast("صيغة البريد الإلكتروني غير صحيحة"); return; } sendFeedback(_firstNameController.text, _lastNameController.text, _emailController.text, _mobileNumberController.text, _descriptionController.text); }, style: TextButton.styleFrom( backgroundColor: ColorConsts.darkText, foregroundColor: Colors.white, textStyle: TextStyle(fontSize: 18), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(25.0), ), ), child: Text("إرسال"), ), ), ], ); return Scaffold( backgroundColor: ColorConsts.greyF4Color, body: isPortrait ? SingleChildScrollView( physics: BouncingScrollPhysics(), child: Column( children: [ _header, _inputDataList.paddingAll(35), ], ), ) : Row( children: [ Expanded(child: _header, flex: 4), Expanded( child: SingleChildScrollView( physics: BouncingScrollPhysics(), padding: EdgeInsets.all(48), child: _inputDataList, ), flex: 6) ], ), ); } }