import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/user/register_user.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class CompleteProfilePage extends StatefulWidget { final RegisterUserRespModel user; const CompleteProfilePage(this.user, {Key? key}) : super(key: key); @override State createState() => _CompleteProfilePageState(); } class _CompleteProfilePageState extends State { String? firstName = "", lastName = "", email = "", confirmPassword = ""; late String password = ""; bool isChecked = false; late UserVM userVM; @override void initState() { userVM = Provider.of(context, listen: false); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar( isRemoveBackButton: widget.user.data!.roleId == 7 ? false : true, title: widget.user.data!.roleId == 7 ? "" : LocaleKeys.signUp.tr(), ), body: SizedBox( width: double.infinity, height: double.infinity, child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(20), child: Column( children: [ 6.height, LocaleKeys.completeProfile.tr().toText( height: 23 / 24, fontSize: 24, letterSpacing: -1.44, ), 12.height, Padding( padding: const EdgeInsets.symmetric(horizontal: 20), child: LocaleKeys.profileMsg.tr().toText( color: MyColors.lightTextColor, textAlign: TextAlign.center, fontSize: 14, height: 23 / 24, letterSpacing: -0.48, ), ), 12.height, TxtField( hint: LocaleKeys.firstName.tr(), value: firstName, onChanged: (v) { firstName = v; }, ), 12.height, TxtField( hint: LocaleKeys.surname.tr(), value: lastName, onChanged: (v) { lastName = v; }, ), 12.height, TxtField( hint: LocaleKeys.email.tr(), value: email, // isButtonEnable: email!.length > 0 ? true : false, buttonTitle: LocaleKeys.verify.tr(), onChanged: (v) { email = v; }, ), 12.height, TxtField( hint: LocaleKeys.createPass.tr(), isPasswordEnabled: true, maxLines: 1, value: password, onChanged: (v) { password = v; }, ), 12.height, TxtField( hint: LocaleKeys.confirmPass.tr(), isPasswordEnabled: true, maxLines: 1, value: confirmPassword, onChanged: (v) { confirmPassword = v; }, ), 50.height, Row( children: [ Consumer(builder: (BuildContext context, UserVM userVM, Widget? child) { return Checkbox( value: userVM.completeProfilePageCheckbox, activeColor: Colors.blue, onChanged: (value) { userVM.updateCompleteProfilePageCheckbox(value!); }, ); }), Expanded( child: Column( children: [ LocaleKeys.termsOfService.tr().toText(fontSize: 12), LocaleKeys.terms.tr().toText(fontSize: 12, color: MyColors.darkPrimaryColor), ], ), ), Theme( data: ThemeData(unselectedWidgetColor: Colors.transparent), child: Checkbox( value: false, onChanged: (_) {}, ), ) ], ), 16.height, ShowFillButton( title: LocaleKeys.save.tr(), maxWidth: double.infinity, onPressed: () { bool validateStatus = userVM.dataValidation( password: password, firstName: firstName, lastName: lastName, email: email, ); if (validateStatus) { userVM.performCompleteProfile( context, password: password, confirmPassword: confirmPassword!, firstName: firstName!, lastName: lastName!, email: email!, userId: widget.user.data!.userId ?? "", isNeedToPassToken: widget.user.data!.isNeedToPassToken, ); } }), 16.height, ], ), ), ), ), ); } }