Skip to content

Commit

Permalink
Clean up and simplify code
Browse files Browse the repository at this point in the history
  • Loading branch information
gwosd committed Jan 28, 2024
1 parent f9cae34 commit f83b87d
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 46 deletions.
2 changes: 1 addition & 1 deletion app/lib/pages/measurementScreen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class _MeasurementScreen extends State<MeasurementScreen> {
final List<SortedMeasurement> measurements = database.sortedMeasurements;
return measurements.isNotEmpty
? measurementScreen(context, snapshot)
: defaultEmptyChart(context);
: defaultEmptyChart(context: context);
}

return StreamBuilder<List<Measurement>>(
Expand Down
33 changes: 1 addition & 32 deletions app/lib/pages/overview.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:trale/core/icons.dart';
import 'package:trale/core/measurement.dart';
import 'package:trale/core/measurementDatabase.dart';
import 'package:trale/core/theme.dart';
Expand Down Expand Up @@ -44,35 +42,6 @@ class _OverviewScreen extends State<OverviewScreen> {
final int firstDelayInMilliseconds =
TraleTheme.of(context)!.transitionDuration.normal.inMilliseconds;

final SizedBox lineChart = SizedBox(
height: MediaQuery.of(context).size.height / 3,
width: MediaQuery.of(context).size.width,
child: Card(
shape: TraleTheme.of(context)!.borderShape,
color: Theme.of(context).colorScheme.surface,
margin: EdgeInsets.symmetric(
horizontal: TraleTheme.of(context)!.padding,
),
child: CustomLineChart(loadedFirst: loadedFirst)
),
);

final Widget dummyChart = emptyChart(
context,
<InlineSpan>[
TextSpan(
text: AppLocalizations.of(context)!.intro1,
),
const WidgetSpan(
child: Icon(CustomIcons.add),
alignment: PlaceholderAlignment.middle,
),
TextSpan(
text: AppLocalizations.of(context)!.intro2,
),
],
);

Widget overviewScreen(BuildContext context,
AsyncSnapshot<List<Measurement>> snapshot) {
return Column(
Expand Down Expand Up @@ -119,7 +88,7 @@ class _OverviewScreen extends State<OverviewScreen> {

return measurements.isNotEmpty
? overviewScreen(context, snapshot)
: dummyChart;
: defaultEmptyChart(context: context, overviewScreen: true);
}

return StreamBuilder<List<Measurement>>(
Expand Down
2 changes: 1 addition & 1 deletion app/lib/pages/statScreen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ class _StatsScreen extends State<StatsScreen> {
final List<SortedMeasurement> measurements = database.sortedMeasurements;
return measurements.isNotEmpty
? statsScreen(context, snapshot)
: defaultEmptyChart(context);
: defaultEmptyChart(context:context);
}


Expand Down
42 changes: 30 additions & 12 deletions app/lib/widget/emptyChart.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:trale/core/icons.dart';
import 'package:trale/core/theme.dart';
import 'package:trale/widget/animate_in_effect.dart';
import 'package:trale/widget/fade_in_effect.dart';

// Define empty Chart, which is used in case there are no measurements yet
/// Define empty Chart, which is used in case there are no measurements yet
Widget emptyChart(BuildContext context, List<InlineSpan> inlineSpan) {
final int animationDurationInMilliseconds =
TraleTheme.of(context)!.transitionDuration.slow.inMilliseconds;
Expand Down Expand Up @@ -44,16 +45,33 @@ Widget emptyChart(BuildContext context, List<InlineSpan> inlineSpan) {
);
}

// Define the default empty Chart,
// which is used in case there are no measurements yet
Widget defaultEmptyChart(BuildContext context) {
final List<InlineSpan> inlineSpan = <InlineSpan>[
TextSpan(
text: AppLocalizations.of(context)!.intro3,
),
const TextSpan(
text: '\n\n😃'
),
];
/// Define the default empty Chart,
/// which is used in case there are no measurements yet.
Widget defaultEmptyChart({required BuildContext context,
bool overviewScreen = false}) {
List<InlineSpan> inlineSpan;
if (overviewScreen){
inlineSpan = <InlineSpan>[
TextSpan(
text: AppLocalizations.of(context)!.intro1,
),
const WidgetSpan(
child: Icon(CustomIcons.add),
alignment: PlaceholderAlignment.middle,
),
TextSpan(
text: AppLocalizations.of(context)!.intro2,
),
];
} else{
inlineSpan = <InlineSpan>[
TextSpan(
text: AppLocalizations.of(context)!.intro3,
),
const TextSpan(
text: '\n\n😃'
),
];
}
return emptyChart(context, inlineSpan);
}

0 comments on commit f83b87d

Please sign in to comment.