145 lines
7.9 KiB
Dart
145 lines
7.9 KiB
Dart
|
|
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<ExercisePlanDetailAddPage> {
|
|
@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<ExercisePlanCustomerFormBloc>(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: <Widget>[
|
|
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),
|
|
)),
|
|
],
|
|
),
|
|
]),
|
|
))),
|
|
),
|
|
);
|
|
}));
|
|
}
|
|
}
|