2022-03-21 00:08:05 +00:00
|
|
|
import 'package:diameter/screens/category/categories.dart';
|
|
|
|
import 'package:diameter/screens/category/accuracy_detail.dart';
|
|
|
|
import 'package:diameter/screens/category/accuracy_list.dart';
|
|
|
|
import 'package:diameter/screens/category/event_type_detail.dart';
|
|
|
|
import 'package:diameter/screens/category/event_type_list.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_source_detail.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_source_list.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_category_detail.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_category_list.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_portion_type_detail.dart';
|
|
|
|
import 'package:diameter/screens/category/meal_portion_type_list.dart';
|
2021-10-22 23:08:09 +00:00
|
|
|
import 'package:diameter/screens/basal/basal_detail.dart';
|
|
|
|
import 'package:diameter/screens/basal/basal_profile_detail.dart';
|
2022-03-21 00:07:29 +00:00
|
|
|
import 'package:diameter/screens/basal/basal_profile_list.dart';
|
2021-10-22 23:08:09 +00:00
|
|
|
import 'package:diameter/screens/bolus/bolus_detail.dart';
|
|
|
|
import 'package:diameter/screens/bolus/bolus_profile_detail.dart';
|
|
|
|
import 'package:diameter/screens/bolus/bolus_profile_list.dart';
|
2022-03-21 00:08:05 +00:00
|
|
|
import 'package:diameter/screens/log/log_entry/log_bolus_detail.dart';
|
|
|
|
import 'package:diameter/screens/log/log_overview.dart';
|
|
|
|
import 'package:diameter/screens/reports/daily_chart.dart';
|
2022-03-21 00:07:29 +00:00
|
|
|
import 'package:diameter/screens/log/log_entry/log_entry.dart';
|
2022-03-21 00:29:36 +00:00
|
|
|
import 'package:diameter/screens/log/log_event/log_event_detail.dart';
|
|
|
|
import 'package:diameter/screens/log/log_event/log_event_list.dart';
|
2022-03-21 00:07:29 +00:00
|
|
|
import 'package:diameter/screens/log/log_entry/log_meal_detail.dart';
|
2021-10-22 23:08:09 +00:00
|
|
|
import 'package:diameter/screens/meal/meal_detail.dart';
|
|
|
|
import 'package:diameter/screens/meal/meal_list.dart';
|
2022-03-21 00:08:05 +00:00
|
|
|
import 'package:diameter/screens/reports/export.dart';
|
|
|
|
import 'package:diameter/screens/reports/reports.dart';
|
2021-10-22 23:08:09 +00:00
|
|
|
import 'package:diameter/settings.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
class Routes {
|
|
|
|
static const String basal = BasalDetailScreen.routeName;
|
|
|
|
static const String basalProfile = BasalProfileDetailScreen.routeName;
|
|
|
|
static const String basalProfiles = BasalProfileListScreen.routeName;
|
|
|
|
static const List<String> basalRoutes = [basal, basalProfile, basalProfiles];
|
|
|
|
|
|
|
|
static const String bolus = BolusDetailScreen.routeName;
|
|
|
|
static const String bolusProfile = BolusProfileDetailScreen.routeName;
|
|
|
|
static const String bolusProfiles = BolusProfileListScreen.routeName;
|
|
|
|
static const List<String> bolusRoutes = [bolus, bolusProfile, bolusProfiles];
|
|
|
|
|
|
|
|
static const String log = LogScreen.routeName;
|
|
|
|
static const String logEntry = LogEntryScreen.routeName;
|
|
|
|
static const String logMeal = LogMealDetailScreen.routeName;
|
2022-03-21 00:08:05 +00:00
|
|
|
static const String logBolus = LogBolusDetailScreen.routeName;
|
|
|
|
static const List<String> logEntryRoutes = [log, logEntry, logMeal, logBolus];
|
|
|
|
|
|
|
|
static const String logEvent = LogEventDetailScreen.routeName;
|
|
|
|
static const String logEvents = LogEventListScreen.routeName;
|
|
|
|
static const List<String> logEventRoutes = [logEvent, logEvents];
|
2022-03-21 00:07:29 +00:00
|
|
|
|
2022-03-21 00:08:05 +00:00
|
|
|
static const String reports = ReportsOverviewScreen.routeName;
|
|
|
|
static const String export = ExportDialog.routeName;
|
|
|
|
static const String dailyChart = DailyChart.routeName;
|
|
|
|
static const List<String> reportRoutes = [export, reports, dailyChart];
|
2021-10-22 23:08:09 +00:00
|
|
|
|
|
|
|
static const String meal = MealDetailScreen.routeName;
|
|
|
|
static const String meals = MealListScreen.routeName;
|
|
|
|
static const List<String> mealRoutes = [meal, meals];
|
2022-03-21 00:08:05 +00:00
|
|
|
|
|
|
|
static const String eventType = EventTypeDetailScreen.routeName;
|
|
|
|
static const String eventTypes = EventTypeListScreen.routeName;
|
|
|
|
static const List<String> eventTypeRoutes = [eventType, eventTypes];
|
|
|
|
|
2021-10-22 23:08:09 +00:00
|
|
|
static const String mealCategory = MealCategoryDetailScreen.routeName;
|
|
|
|
static const String mealCategories = MealCategoryListScreen.routeName;
|
|
|
|
static const List<String> mealCategoryRoutes = [mealCategory, mealCategories];
|
2022-03-21 00:08:05 +00:00
|
|
|
|
2021-10-22 23:08:09 +00:00
|
|
|
static const String mealPortionType = MealPortionTypeDetailScreen.routeName;
|
|
|
|
static const String mealPortionTypes = MealPortionTypeListScreen.routeName;
|
|
|
|
static const List<String> mealPortionTypeRoutes = [
|
|
|
|
mealPortionType,
|
|
|
|
mealPortionTypes
|
|
|
|
];
|
2022-03-21 00:08:05 +00:00
|
|
|
|
2021-10-22 23:08:09 +00:00
|
|
|
static const String mealSource = MealSourceDetailScreen.routeName;
|
|
|
|
static const String mealSources = MealSourceListScreen.routeName;
|
|
|
|
static const List<String> mealSourceRoutes = [mealSource, mealSources];
|
|
|
|
|
|
|
|
static const String accuracy = AccuracyDetailScreen.routeName;
|
|
|
|
static const String accuracies = AccuracyListScreen.routeName;
|
|
|
|
static const List<String> accuracyRoutes = [accuracy, accuracies];
|
|
|
|
|
2022-03-21 00:08:05 +00:00
|
|
|
static const String category = CategoryOverviewScreen.routeName;
|
|
|
|
static const List<String> categoryRoutes = [
|
|
|
|
category,
|
|
|
|
...eventTypeRoutes,
|
|
|
|
...mealCategoryRoutes,
|
|
|
|
...mealPortionTypeRoutes,
|
|
|
|
...mealSourceRoutes,
|
|
|
|
...accuracyRoutes
|
|
|
|
];
|
|
|
|
|
2021-10-22 23:08:09 +00:00
|
|
|
static const String settings = SettingsScreen.routeName;
|
|
|
|
}
|
|
|
|
|
|
|
|
class Navigation extends StatefulWidget {
|
|
|
|
final String? currentLocation;
|
|
|
|
const Navigation({Key? key, this.currentLocation}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
State<Navigation> createState() => _NavigationState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _NavigationState extends State<Navigation> {
|
|
|
|
void selectDestination(String destination) {
|
|
|
|
Navigator.pushReplacementNamed(context, destination);
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Drawer(
|
|
|
|
child: ListView(padding: EdgeInsets.zero, children: <Widget>[
|
|
|
|
const SizedBox(
|
|
|
|
child: UserAccountsDrawerHeader(
|
|
|
|
accountName: Text('Sarah'),
|
|
|
|
accountEmail: Text('sarah@sudo.ca'),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
ListTile(
|
|
|
|
title: const Text('Log'),
|
|
|
|
leading: const Icon(Icons.dashboard),
|
|
|
|
onTap: () {
|
|
|
|
selectDestination(Routes.log);
|
|
|
|
},
|
|
|
|
selected: widget.currentLocation == Routes.log,
|
|
|
|
),
|
|
|
|
ListTile(
|
2022-03-21 00:07:29 +00:00
|
|
|
title: const Text('Log Events'),
|
|
|
|
leading: const Icon(Icons.event),
|
2021-10-22 23:08:09 +00:00
|
|
|
onTap: () {
|
2022-03-21 00:08:05 +00:00
|
|
|
selectDestination(Routes.logEvents);
|
2021-10-22 23:08:09 +00:00
|
|
|
},
|
2022-03-21 00:08:05 +00:00
|
|
|
selected: widget.currentLocation == Routes.logEvents,
|
2021-10-22 23:08:09 +00:00
|
|
|
),
|
|
|
|
ListTile(
|
2022-03-21 00:08:05 +00:00
|
|
|
title: const Text('Reports'),
|
|
|
|
leading: const Icon(Icons.show_chart),
|
2021-10-22 23:08:09 +00:00
|
|
|
onTap: () {
|
2022-03-21 00:08:05 +00:00
|
|
|
selectDestination(Routes.reports);
|
2021-10-22 23:08:09 +00:00
|
|
|
},
|
2022-03-21 00:08:05 +00:00
|
|
|
selected: Routes.reportRoutes.contains(widget.currentLocation),
|
2021-10-22 23:08:09 +00:00
|
|
|
),
|
|
|
|
ListTile(
|
2022-03-21 00:08:05 +00:00
|
|
|
title: const Text('Meals'),
|
|
|
|
leading: const Icon(Icons.dinner_dining),
|
2021-10-22 23:08:09 +00:00
|
|
|
onTap: () {
|
2022-03-21 00:08:05 +00:00
|
|
|
selectDestination(Routes.meals);
|
2021-10-22 23:08:09 +00:00
|
|
|
},
|
2022-03-21 00:08:05 +00:00
|
|
|
selected: Routes.mealRoutes.contains(widget.currentLocation),
|
2021-10-22 23:08:09 +00:00
|
|
|
),
|
|
|
|
ListTile(
|
|
|
|
title: const Text('Basal Profiles'),
|
|
|
|
leading: const Icon(Icons.access_time),
|
|
|
|
onTap: () {
|
|
|
|
selectDestination(Routes.basalProfiles);
|
|
|
|
},
|
|
|
|
selected: Routes.basalRoutes.contains(widget.currentLocation),
|
|
|
|
),
|
|
|
|
ListTile(
|
|
|
|
title: const Text('Bolus Profiles'),
|
|
|
|
leading: const Icon(Icons.medication),
|
|
|
|
onTap: () {
|
|
|
|
selectDestination(Routes.bolusProfiles);
|
|
|
|
},
|
|
|
|
selected: Routes.bolusRoutes.contains(widget.currentLocation),
|
|
|
|
),
|
2022-03-21 00:08:05 +00:00
|
|
|
ListTile(
|
|
|
|
title: const Text('Categorization'),
|
|
|
|
leading: const Icon(Icons.category),
|
|
|
|
onTap: () {
|
|
|
|
selectDestination(Routes.category);
|
|
|
|
},
|
|
|
|
selected: Routes.categoryRoutes.contains(widget.currentLocation),
|
|
|
|
),
|
2021-10-22 23:08:09 +00:00
|
|
|
ListTile(
|
|
|
|
title: const Text('Settings'),
|
|
|
|
leading: const Icon(Icons.settings),
|
|
|
|
onTap: () {
|
|
|
|
selectDestination(Routes.settings);
|
|
|
|
},
|
|
|
|
selected: widget.currentLocation == Routes.settings,
|
|
|
|
)
|
|
|
|
]));
|
|
|
|
}
|
|
|
|
}
|