Skip to content

Commit

Permalink
move MacronutrientsTable into its own file
Browse files Browse the repository at this point in the history
  • Loading branch information
Dieterbe committed May 5, 2024
1 parent 2347657 commit 2a9ac23
Show file tree
Hide file tree
Showing 2 changed files with 177 additions and 174 deletions.
176 changes: 176 additions & 0 deletions lib/widgets/nutrition/macro_nutrients_table.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:wger/models/nutrition/nutritional_goals.dart';

class MacronutrientsTable extends StatelessWidget {
const MacronutrientsTable({
super.key,
required this.nutritionalGoals,
required this.plannedValuesPercentage,
required this.nutritionalGoalsGperKg,
});

static const double tablePadding = 7;
final NutritionalGoals nutritionalGoals;
final NutritionalGoals plannedValuesPercentage;
final NutritionalGoals? nutritionalGoalsGperKg;

@override
Widget build(BuildContext context) {
return Table(
defaultVerticalAlignment: TableCellVerticalAlignment.middle,
border: TableBorder(
horizontalInside: BorderSide(
width: 1,
color: Theme.of(context).colorScheme.outline,
),
),
columnWidths: const {0: FractionColumnWidth(0.4)},
children: [
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(
AppLocalizations.of(context).macronutrients,
style: const TextStyle(fontWeight: FontWeight.bold),
),
),
Text(
AppLocalizations.of(context).total,
style: const TextStyle(fontWeight: FontWeight.bold),
),
Text(
AppLocalizations.of(context).percentEnergy,
style: const TextStyle(fontWeight: FontWeight.bold),
),
Text(
AppLocalizations.of(context).gPerBodyKg,
style: const TextStyle(fontWeight: FontWeight.bold),
),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).energy),
),
Text(
nutritionalGoals.energy != null
? nutritionalGoals.energy!.toStringAsFixed(0) + AppLocalizations.of(context).kcal
: '',
),
const Text(''),
const Text(''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).protein),
),
Text(nutritionalGoals.protein != null
? nutritionalGoals.protein!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.protein != null
? plannedValuesPercentage.protein!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.protein != null
? nutritionalGoalsGperKg!.protein!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).carbohydrates),
),
Text(nutritionalGoals.carbohydrates != null
? nutritionalGoals.carbohydrates!.toStringAsFixed(0) +
AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.carbohydrates != null
? plannedValuesPercentage.carbohydrates!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.carbohydrates != null
? nutritionalGoalsGperKg!.carbohydrates!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding, horizontal: 12),
child: Text(AppLocalizations.of(context).sugars),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.carbohydratesSugar != null
? nutritionalGoals.carbohydratesSugar!.toStringAsFixed(0) +
AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).fat),
),
Text(nutritionalGoals.fat != null
? nutritionalGoals.fat!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.fat != null
? plannedValuesPercentage.fat!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.fat != null
? nutritionalGoalsGperKg!.fat!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding, horizontal: 12),
child: Text(AppLocalizations.of(context).saturatedFat),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.fatSaturated != null
? nutritionalGoals.fatSaturated!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).fibres),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.fibres != null
? nutritionalGoals.fibres!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).sodium),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.sodium != null
? nutritionalGoals.sodium!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
],
);
}
}
175 changes: 1 addition & 174 deletions lib/widgets/nutrition/nutritional_plan_detail.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart';
import 'package:wger/helpers/colors.dart';
import 'package:wger/models/nutrition/nutritional_goals.dart';
import 'package:wger/models/nutrition/nutritional_plan.dart';
import 'package:wger/providers/body_weight.dart';
import 'package:wger/screens/form_screen.dart';
import 'package:wger/widgets/measurements/charts.dart';
import 'package:wger/widgets/nutrition/charts.dart';
import 'package:wger/widgets/nutrition/forms.dart';
import 'package:wger/widgets/nutrition/macro_nutrients_table.dart';
import 'package:wger/widgets/nutrition/meal.dart';
import 'package:wger/widgets/nutrition/nutritional_diary_table.dart';

Expand Down Expand Up @@ -160,176 +160,3 @@ class NutritionalPlanDetailWidget extends StatelessWidget {
));
}
}

class MacronutrientsTable extends StatelessWidget {
const MacronutrientsTable({
super.key,
required this.nutritionalGoals,
required this.plannedValuesPercentage,
required this.nutritionalGoalsGperKg,
});

static const double tablePadding = 7;
final NutritionalGoals nutritionalGoals;
final NutritionalGoals plannedValuesPercentage;
final NutritionalGoals? nutritionalGoalsGperKg;

@override
Widget build(BuildContext context) {
return Table(
defaultVerticalAlignment: TableCellVerticalAlignment.middle,
border: TableBorder(
horizontalInside: BorderSide(
width: 1,
color: Theme.of(context).colorScheme.outline,
),
),
columnWidths: const {0: FractionColumnWidth(0.4)},
children: [
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(
AppLocalizations.of(context).macronutrients,
style: const TextStyle(fontWeight: FontWeight.bold),
),
),
Text(
AppLocalizations.of(context).total,
style: const TextStyle(fontWeight: FontWeight.bold),
),
Text(
AppLocalizations.of(context).percentEnergy,
style: const TextStyle(fontWeight: FontWeight.bold),
),
Text(
AppLocalizations.of(context).gPerBodyKg,
style: const TextStyle(fontWeight: FontWeight.bold),
),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).energy),
),
Text(
nutritionalGoals.energy != null
? nutritionalGoals.energy!.toStringAsFixed(0) + AppLocalizations.of(context).kcal
: '',
),
const Text(''),
const Text(''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).protein),
),
Text(nutritionalGoals.protein != null
? nutritionalGoals.protein!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.protein != null
? plannedValuesPercentage.protein!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.protein != null
? nutritionalGoalsGperKg!.protein!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).carbohydrates),
),
Text(nutritionalGoals.carbohydrates != null
? nutritionalGoals.carbohydrates!.toStringAsFixed(0) +
AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.carbohydrates != null
? plannedValuesPercentage.carbohydrates!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.carbohydrates != null
? nutritionalGoalsGperKg!.carbohydrates!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding, horizontal: 12),
child: Text(AppLocalizations.of(context).sugars),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.carbohydratesSugar != null
? nutritionalGoals.carbohydratesSugar!.toStringAsFixed(0) +
AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).fat),
),
Text(nutritionalGoals.fat != null
? nutritionalGoals.fat!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
Text(plannedValuesPercentage.fat != null
? plannedValuesPercentage.fat!.toStringAsFixed(1)
: ''),
Text(nutritionalGoalsGperKg != null && nutritionalGoalsGperKg!.fat != null
? nutritionalGoalsGperKg!.fat!.toStringAsFixed(1)
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding, horizontal: 12),
child: Text(AppLocalizations.of(context).saturatedFat),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.fatSaturated != null
? nutritionalGoals.fatSaturated!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).fibres),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.fibres != null
? nutritionalGoals.fibres!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
TableRow(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: tablePadding),
child: Text(AppLocalizations.of(context).sodium),
),
const Text(''),
const Text(''),
Text(nutritionalGoals.sodium != null
? nutritionalGoals.sodium!.toStringAsFixed(0) + AppLocalizations.of(context).g
: ''),
],
),
],
);
}
}

0 comments on commit 2a9ac23

Please sign in to comment.