import 'package:aitrainer_app/bloc/exercise_plan/exercise_plan_bloc.dart'; import 'package:aitrainer_app/bloc/exercise_plan_custom_form.dart'; import 'package:aitrainer_app/localization/app_language.dart'; import 'package:aitrainer_app/localization/app_localization.dart'; import 'package:aitrainer_app/repository/exercise_plan_repository.dart'; import 'package:aitrainer_app/widgets/app_bar_common.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_form_bloc/flutter_form_bloc.dart'; class ExercisePlanDetailAddPage extends StatefulWidget { @override _ExercisePlanDetailAddPage createState() => _ExercisePlanDetailAddPage(); } class _ExercisePlanDetailAddPage extends State { @override Widget build(BuildContext context) { // ignore: close_sinks final ExercisePlanBloc planBloc = ModalRoute.of(context).settings.arguments; final ExercisePlanRepository exercisePlanRepository = planBloc.exercisePlanRepository; return BlocProvider( create: (context) => ExercisePlanCustomerFormBloc(exercisePlanRepository: exercisePlanRepository, planBloc: planBloc), child: Builder(builder: (context) { // ignore: close_sinks final bloc = BlocProvider.of(context); String exerciseName = ""; if (bloc != null) { exerciseName = AppLanguage().appLocal == Locale("en") ? bloc.exercisePlanRepository.actualPlanDetail.exerciseType.name : bloc.exercisePlanRepository.actualPlanDetail.exerciseType.nameTranslation; } return Form( autovalidate: true, child: Scaffold( resizeToAvoidBottomInset: true, appBar: AppBarCommonNav(), body: Container( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height, decoration: BoxDecoration( image: DecorationImage( image: AssetImage('asset/image/WT_light_background.png'), fit: BoxFit.fill, alignment: Alignment.center, ), ), child: Container( padding: const EdgeInsets.only(top: 25, left: 25, right: 25), child: SingleChildScrollView( scrollDirection: Axis.vertical, child: Column(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Text(AppLocalizations.of(context).translate('Save The Exercise To The Exercise Plan'), style: TextStyle(fontSize: 14, color: Colors.blueAccent)), Text( exerciseName, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18, color: Colors.deepOrange), overflow: TextOverflow.fade, maxLines: 1, softWrap: true, ), TextFieldBlocBuilder( textFieldBloc: bloc.serieField, textAlign: TextAlign.center, style: TextStyle(fontSize: 30, color: Colors.lightBlue, fontWeight: FontWeight.bold), inputFormatters: [WhitelistingTextInputFormatter(RegExp(r"[\d.]"))], decoration: InputDecoration( fillColor: Colors.white, filled: false, hintStyle: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w100), hintText: AppLocalizations.of(context).translate("The number of the serie done with"), labelStyle: TextStyle(fontSize: 16, color: Colors.lightBlue), labelText: AppLocalizations.of(context).translate("Serie"), ), ), TextFieldBlocBuilder( textFieldBloc: bloc.quantityField, textAlign: TextAlign.center, style: TextStyle(fontSize: 30, color: Colors.lightBlue, fontWeight: FontWeight.bold), inputFormatters: [WhitelistingTextInputFormatter(RegExp(r"[\d.]"))], decoration: InputDecoration( fillColor: Colors.white, filled: false, hintStyle: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w100), hintText: AppLocalizations.of(context).translate("The number of the repeats of one serie"), labelStyle: TextStyle(fontSize: 16, color: Colors.lightBlue), labelText: AppLocalizations.of(context).translate("Repeats"), ), ), TextFieldBlocBuilder( textFieldBloc: bloc.weightField, textAlign: TextAlign.center, style: TextStyle(fontSize: 30, color: Colors.lightBlue, fontWeight: FontWeight.bold), inputFormatters: [WhitelistingTextInputFormatter(RegExp(r"[\d.]"))], decoration: InputDecoration( fillColor: Colors.white, filled: false, hintStyle: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w100), hintText: AppLocalizations.of(context).translate("The weight"), labelStyle: TextStyle(fontSize: 16, color: Colors.lightBlue), labelText: AppLocalizations.of(context).translate("Weight"), ), ), Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ RaisedButton( textColor: Colors.white, color: Colors.red.shade300, focusColor: Colors.white, onPressed: () => { print("Remove " + bloc.exercisePlanRepository.actualPlanDetail.exerciseType.name), planBloc.add(ExercisePlanRemoveExercise(exercisePlanDetail: bloc.exercisePlanRepository.actualPlanDetail)), Navigator.of(context).pop(), }, child: Text("Delete"), //Text(AppLocalizations.of(context).translate("Delete"), style: TextStyle(fontSize: 16),) ), RaisedButton( textColor: Colors.white, color: Colors.blueAccent, focusColor: Colors.white, onPressed: () => { bloc.submit(), Navigator.of(context).pop(), }, child: Text( AppLocalizations.of(context).translate("Save"), style: TextStyle(fontSize: 16), )), ], ), ]), ))), ), ); })); } }