Skip to content

Commit a659fcc

Browse files
committed
fixed typo, added translation, fixed empty list state, added elevation parameter to card
1 parent 5cc6413 commit a659fcc

File tree

4 files changed

+56
-68
lines changed

4 files changed

+56
-68
lines changed

lib/l10n/app_en.arb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,10 @@
383383
"@noWeightEntries": {
384384
"description": "Message shown when the user has no logged weight entries"
385385
},
386+
"noMeasurementEntries": "You have no measurement entries",
387+
"@noMeasurementsntries": {
388+
"description": "Message shown when the user has no logged measurement entries"
389+
},
386390
"edit": "Edit",
387391
"@edit": {},
388392
"loadingText": "Loading...",

lib/screens/dashboard.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
4141
DashboardWorkoutWidget(),
4242
DashboardNutritionWidget(),
4343
DashboardWeightWidget(),
44-
DashboardMeasurementsWidget(),
44+
DashboardMeasurementWidget(),
4545
const DashboardCalendarWidget(),
4646
],
4747
),

lib/widgets/dashboard/widgets.dart

Lines changed: 48 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import 'package:provider/provider.dart';
2626
import 'package:wger/models/nutrition/nutritional_plan.dart';
2727
import 'package:wger/models/workouts/workout_plan.dart';
2828
import 'package:wger/providers/body_weight.dart';
29+
import 'package:wger/providers/measurement.dart';
2930
import 'package:wger/providers/nutrition.dart';
3031
import 'package:wger/providers/workout_plans.dart';
3132
import 'package:wger/screens/form_screen.dart';
@@ -37,19 +38,15 @@ import 'package:wger/theme/theme.dart';
3738
import 'package:wger/widgets/core/charts.dart';
3839
import 'package:wger/widgets/core/core.dart';
3940
import 'package:wger/widgets/measurements/categories_card.dart';
41+
import 'package:wger/widgets/measurements/forms.dart';
4042
import 'package:wger/widgets/nutrition/charts.dart';
4143
import 'package:wger/widgets/nutrition/forms.dart';
4244
import 'package:wger/widgets/weight/forms.dart';
4345
import 'package:wger/widgets/workouts/forms.dart';
4446

45-
import '../../providers/measurement.dart';
46-
import '../../screens/measurement_entries_screen.dart';
47-
import '../measurements/forms.dart';
48-
4947
class DashboardNutritionWidget extends StatefulWidget {
5048
@override
51-
_DashboardNutritionWidgetState createState() =>
52-
_DashboardNutritionWidgetState();
49+
_DashboardNutritionWidgetState createState() => _DashboardNutritionWidgetState();
5350
}
5451

5552
class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
@@ -60,8 +57,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
6057
@override
6158
void initState() {
6259
super.initState();
63-
_plan =
64-
Provider.of<NutritionPlansProvider>(context, listen: false).currentPlan;
60+
_plan = Provider.of<NutritionPlansProvider>(context, listen: false).currentPlan;
6561
_hasContent = _plan != null;
6662
}
6763

@@ -104,8 +100,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
104100
icon: const Icon(Icons.history_edu),
105101
color: wgerPrimaryButtonColor,
106102
onPressed: () {
107-
Provider.of<NutritionPlansProvider>(context, listen: false)
108-
.logMealToDiary(meal);
103+
Provider.of<NutritionPlansProvider>(context, listen: false).logMealToDiary(meal);
109104
ScaffoldMessenger.of(context).showSnackBar(
110105
SnackBar(
111106
content: Text(
@@ -136,8 +131,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
136131
),
137132
),
138133
const SizedBox(width: 5),
139-
Text(
140-
'${item.amount.toStringAsFixed(0)} ${AppLocalizations.of(context).g}'),
134+
Text('${item.amount.toStringAsFixed(0)} ${AppLocalizations.of(context).g}'),
141135
],
142136
),
143137
],
@@ -157,9 +151,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
157151
return const Text('');
158152
}
159153

160-
return _showDetail
161-
? const Icon(Icons.expand_less)
162-
: const Icon(Icons.expand_more);
154+
return _showDetail ? const Icon(Icons.expand_less) : const Icon(Icons.expand_more);
163155
}
164156

165157
@override
@@ -169,9 +161,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
169161
children: [
170162
ListTile(
171163
title: Text(
172-
_hasContent
173-
? _plan!.description
174-
: AppLocalizations.of(context).nutritionalPlan,
164+
_hasContent ? _plan!.description : AppLocalizations.of(context).nutritionalPlan,
175165
style: Theme.of(context).textTheme.headline4,
176166
),
177167
subtitle: Text(
@@ -200,8 +190,7 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
200190
Container(
201191
padding: const EdgeInsets.all(15),
202192
height: 180,
203-
child:
204-
NutritionalPlanPieChartWidget(_plan!.nutritionalValues),
193+
child: NutritionalPlanPieChartWidget(_plan!.nutritionalValues),
205194
)
206195
],
207196
),
@@ -233,9 +222,8 @@ class _DashboardNutritionWidgetState extends State<DashboardNutritionWidget> {
233222
TextButton(
234223
child: Text(AppLocalizations.of(context).goToDetailPage),
235224
onPressed: () {
236-
Navigator.of(context).pushNamed(
237-
NutritionalPlanScreen.routeName,
238-
arguments: _plan);
225+
Navigator.of(context)
226+
.pushNamed(NutritionalPlanScreen.routeName, arguments: _plan);
239227
},
240228
),
241229
],
@@ -302,11 +290,9 @@ class _DashboardWeightWidgetState extends State<DashboardWeightWidget> {
302290
mainAxisAlignment: MainAxisAlignment.end,
303291
children: <Widget>[
304292
TextButton(
305-
child: Text(
306-
AppLocalizations.of(context).goToDetailPage),
293+
child: Text(AppLocalizations.of(context).goToDetailPage),
307294
onPressed: () {
308-
Navigator.of(context)
309-
.pushNamed(WeightScreen.routeName);
295+
Navigator.of(context).pushNamed(WeightScreen.routeName);
310296
}),
311297
],
312298
),
@@ -327,14 +313,12 @@ class _DashboardWeightWidgetState extends State<DashboardWeightWidget> {
327313
}
328314
}
329315

330-
class DashboardMeasurementsWidget extends StatefulWidget {
316+
class DashboardMeasurementWidget extends StatefulWidget {
331317
@override
332-
_DashboardMeasurementsWidgetState createState() =>
333-
_DashboardMeasurementsWidgetState();
318+
_DashboardMeasurementWidgetState createState() => _DashboardMeasurementWidgetState();
334319
}
335320

336-
class _DashboardMeasurementsWidgetState
337-
extends State<DashboardMeasurementsWidget> {
321+
class _DashboardMeasurementWidgetState extends State<DashboardMeasurementWidget> {
338322
int _current = 0;
339323
final CarouselController _controller = CarouselController();
340324

@@ -344,10 +328,13 @@ class _DashboardMeasurementsWidgetState
344328

345329
var items = _provider.categories
346330
.map(
347-
(item) => CategoriesCard(item),
331+
(item) => CategoriesCard(
332+
item,
333+
elevation: 0,
334+
),
348335
)
349336
.toList();
350-
return Consumer<BodyWeightProvider>(
337+
return Consumer<MeasurementProvider>(
351338
builder: (context, workoutProvider, child) => Card(
352339
child: Column(
353340
mainAxisSize: MainAxisSize.min,
@@ -391,16 +378,13 @@ class _DashboardMeasurementsWidgetState
391378
child: Container(
392379
width: 12.0,
393380
height: 12.0,
394-
margin: EdgeInsets.symmetric(
395-
vertical: 8.0, horizontal: 4.0),
381+
margin: EdgeInsets.symmetric(vertical: 8.0, horizontal: 4.0),
396382
decoration: BoxDecoration(
397383
shape: BoxShape.circle,
398-
color: (Theme.of(context).brightness ==
399-
Brightness.dark
384+
color: (Theme.of(context).brightness == Brightness.dark
400385
? Colors.white
401386
: wgerPrimaryColor)
402-
.withOpacity(
403-
_current == entry.key ? 0.9 : 0.4)),
387+
.withOpacity(_current == entry.key ? 0.9 : 0.4)),
404388
),
405389
);
406390
}).toList(),
@@ -409,9 +393,9 @@ class _DashboardMeasurementsWidgetState
409393
])
410394
else
411395
NothingFound(
412-
AppLocalizations.of(context).noWeightEntries,
396+
AppLocalizations.of(context).noMeasurementEntries,
413397
AppLocalizations.of(context).newEntry,
414-
WeightForm(),
398+
MeasurementCategoryForm(),
415399
),
416400
],
417401
),
@@ -445,9 +429,7 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
445429
return const Text('');
446430
}
447431

448-
return _showDetail
449-
? const Icon(Icons.expand_less)
450-
: const Icon(Icons.expand_more);
432+
return _showDetail ? const Icon(Icons.expand_less) : const Icon(Icons.expand_more);
451433
}
452434

453435
List<Widget> getContent() {
@@ -479,8 +461,7 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
479461
icon: const Icon(Icons.play_arrow),
480462
color: wgerPrimaryButtonColor,
481463
onPressed: () {
482-
Navigator.of(context)
483-
.pushNamed(GymModeScreen.routeName, arguments: day);
464+
Navigator.of(context).pushNamed(GymModeScreen.routeName, arguments: day);
484465
},
485466
),
486467
],
@@ -502,8 +483,7 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
502483
children: [
503484
Text(s.exerciseObj.name),
504485
const SizedBox(width: 10),
505-
MutedText(
506-
set.getSmartRepr(s.exerciseObj).join('\n')),
486+
MutedText(set.getSmartRepr(s.exerciseObj).join('\n')),
507487
],
508488
),
509489
const SizedBox(height: 10),
@@ -528,9 +508,7 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
528508
children: [
529509
ListTile(
530510
title: Text(
531-
_hasContent
532-
? _workoutPlan!.name
533-
: AppLocalizations.of(context).labelWorkoutPlan,
511+
_hasContent ? _workoutPlan!.name : AppLocalizations.of(context).labelWorkoutPlan,
534512
style: Theme.of(context).textTheme.headline4,
535513
),
536514
subtitle: Text(
@@ -572,8 +550,8 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
572550
TextButton(
573551
child: Text(AppLocalizations.of(context).goToDetailPage),
574552
onPressed: () {
575-
Navigator.of(context).pushNamed(WorkoutPlanScreen.routeName,
576-
arguments: _workoutPlan);
553+
Navigator.of(context)
554+
.pushNamed(WorkoutPlanScreen.routeName, arguments: _workoutPlan);
577555
},
578556
),
579557
],
@@ -587,9 +565,10 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
587565
class NothingFound extends StatelessWidget {
588566
final String _title;
589567
final String _titleForm;
590-
final Widget _form;
568+
final Widget? _form;
569+
final VoidCallback? onPressed;
591570

592-
const NothingFound(this._title, this._titleForm, this._form);
571+
const NothingFound(this._title, this._titleForm, this._form, {this.onPressed});
593572

594573
@override
595574
Widget build(BuildContext context) {
@@ -605,16 +584,19 @@ class NothingFound extends StatelessWidget {
605584
Icons.add_box,
606585
color: wgerPrimaryButtonColor,
607586
),
608-
onPressed: () async {
609-
Navigator.pushNamed(
610-
context,
611-
FormScreen.routeName,
612-
arguments: FormScreenArguments(
613-
_titleForm,
614-
_form,
615-
),
616-
);
617-
},
587+
onPressed: onPressed ??
588+
() async {
589+
if (_form != null) {
590+
Navigator.pushNamed(
591+
context,
592+
FormScreen.routeName,
593+
arguments: FormScreenArguments(
594+
_titleForm,
595+
_form!,
596+
),
597+
);
598+
}
599+
},
618600
),
619601
],
620602
),

lib/widgets/measurements/categories_card.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
99

1010
class CategoriesCard extends StatelessWidget {
1111
MeasurementCategory currentCategory;
12+
double? elevation;
1213

13-
CategoriesCard(this.currentCategory);
14+
CategoriesCard(this.currentCategory,{this.elevation});
1415

1516
@override
1617
Widget build(BuildContext context) {
1718
return Card(
19+
elevation: elevation,
1820
child: Column(
1921
children: [
2022
Padding(

0 commit comments

Comments
 (0)