Files
eatvio_app/lib/features/registration_v2/presentation/widgets/phisical_activity.dart

84 lines
3.0 KiB
Dart

import 'package:eatvio_app/core/theme/custom_text_style.dart';
import 'package:eatvio_app/core/theme/theme_helper.dart';
import 'package:eatvio_app/core/widgets/custom_drop_down_button.dart';
import 'package:eatvio_app/features/registration_v2/cubit/registration_cubit.dart';
import 'package:eatvio_app/features/registration_v2/cubit/registration_state.dart';
import 'package:eatvio_app/generated/l10n.dart';
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class PhisicalActivity extends StatefulWidget {
const PhisicalActivity({super.key});
@override
State<PhisicalActivity> createState() => _PhisicalActivityState();
}
class _PhisicalActivityState extends State<PhisicalActivity> {
final List<String> activityDropDownTitles = [];
@override
void didChangeDependencies() {
super.didChangeDependencies();
final s = S.of(context);
if (activityDropDownTitles.isEmpty) {
activityDropDownTitles.add(s.activity_first_value);
activityDropDownTitles.add(s.activity_second_value);
activityDropDownTitles.add(s.activity_third_value);
activityDropDownTitles.add(s.activity_fourth_value);
activityDropDownTitles.add(s.activity_fifth_value);
}
}
String _getTitleFromValue(double value) {
switch (value) {
case 1.2:
return activityDropDownTitles[0];
case 1.375:
return activityDropDownTitles[1];
case 1.55:
return activityDropDownTitles[2];
case 1.7:
return activityDropDownTitles[3];
case 1.9:
return activityDropDownTitles[4];
default:
return activityDropDownTitles[5];
}
}
@override
Widget build(BuildContext context) {
return BlocBuilder<RegistrationCubitV2, RegistrationStateV2>(
builder: (context, state) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomDropDownButton(
// hasError: state.dietDurationError != null,
isExpanded: true,
onChanged: (value) {
if (value != null) {}
},
items: activityDropDownTitles
.mapIndexed(
(index, value) => DropdownMenuItem(
value: activityDropDownTitles[index],
child: Text(activityDropDownTitles[index], style: TextStyles.textMMedium.copyWith(color: appTheme.black)),
),
)
.toList(),
value: state.activityCoefficient == 0 ? null : _getTitleFromValue(state.activityCoefficient),
selectedItemBuilder: (context) {
return activityDropDownTitles.mapIndexed((index, value) => Text(value, overflow: TextOverflow.clip, maxLines: 1)).toList();
},
),
// if (state.dietDurationError != null) ...[const SizedBox(height: 4), ValidationErrorWidget(error: state.dietDurationError ?? '')],
],
);
},
);
}
}