main
1import 'package:blood_pressure_app/data_util/entry_context.dart';
2import 'package:blood_pressure_app/model/storage/storage.dart';
3import 'package:blood_pressure_app/screens/settings_screen.dart';
4import 'package:blood_pressure_app/screens/statistics_screen.dart';
5import 'package:flutter/material.dart';
6import 'package:blood_pressure_app/l10n/app_localizations.dart';
7import 'package:provider/provider.dart';
8
9/// Column of floating action buttons to navigate to [SettingsPage],
10/// [StatisticsScreen] or [EntryUtils.createEntry]
11class NavigationActionButtons extends StatelessWidget {
12 /// Create main FAB navigation column.
13 const NavigationActionButtons({super.key});
14
15 @override
16 Widget build(BuildContext context) => Consumer<Settings>(
17 builder: (context, settings, _) => Column(
18 verticalDirection: VerticalDirection.up,
19 children: [
20 SizedBox.square(
21 dimension: 75,
22 child: FittedBox(
23 child: FloatingActionButton(
24 heroTag: 'floatingActionAdd',
25 tooltip: AppLocalizations.of(context)!.addMeasurement,
26 autofocus: true,
27 onPressed: context.createEntry,
28 child: const Icon(Icons.add,),
29 ),
30 ),
31 ),
32 const SizedBox(
33 height: 10,
34 ),
35 FloatingActionButton(
36 heroTag: 'floatingActionStatistics',
37 tooltip: AppLocalizations.of(context)!.statistics,
38 backgroundColor: const Color(0xFF6F6F6F),
39 onPressed: () => Navigator.of(context).push(MaterialPageRoute<void>(
40 builder: (BuildContext context) => const StatisticsScreen(),
41 )),
42 child: const Icon(Icons.insights, color: Colors.black),
43 ),
44 const SizedBox(
45 height: 10,
46 ),
47 FloatingActionButton(
48 heroTag: 'floatingActionSettings',
49 tooltip: AppLocalizations.of(context)!.settings,
50 backgroundColor: const Color(0xFF6F6F6F),
51 child: const Icon(Icons.settings, color: Colors.black),
52 onPressed: () => Navigator.of(context).push(MaterialPageRoute<void>(
53 builder: (BuildContext context) => const SettingsPage(),
54 )),
55 ),
56 ],
57 ),
58 );
59
60}