Line data Source code
1 : // Copyright 2023 The terCAD team. All rights reserved.
2 : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
3 :
4 : import 'package:app_finance/_classes/herald/app_locale.dart';
5 : import 'package:app_finance/_classes/structure/navigation/app_menu_item.dart';
6 : import 'package:app_finance/_classes/structure/navigation/app_route.dart';
7 : import 'package:flutter/foundation.dart';
8 : import 'package:flutter/material.dart';
9 :
10 : class AppMenu {
11 3 : static RouteSettings metrics(String? route) {
12 : final key = switch (route) {
13 3 : AppRoute.accountRoute => '1',
14 3 : AppRoute.budgetRoute => '0',
15 : _ => '2',
16 : };
17 6 : return RouteSettings(name: AppRoute.metricsSearchRoute, arguments: {routeArguments.search: key});
18 : }
19 :
20 1 : static AppMenuItem getByIndex(int index) {
21 2 : return get()[index];
22 : }
23 :
24 3 : static List<AppMenuItem> get() {
25 3 : return [
26 3 : AppMenuItem(
27 6 : name: AppLocale.labels.homeHeadline,
28 : icon: Icons.home,
29 : route: AppRoute.homeRoute,
30 : ),
31 3 : AppMenuItem(
32 6 : name: AppLocale.labels.goalHeadline,
33 : icon: Icons.star,
34 : route: AppRoute.goalRoute,
35 : ),
36 3 : AppMenuItem(
37 6 : name: AppLocale.labels.accountHeadline,
38 : icon: Icons.credit_card,
39 : route: AppRoute.accountRoute,
40 : ),
41 3 : AppMenuItem(
42 6 : name: AppLocale.labels.budgetHeadline,
43 : icon: Icons.calendar_month,
44 : route: AppRoute.budgetRoute,
45 : ),
46 3 : AppMenuItem(
47 6 : name: AppLocale.labels.billHeadline,
48 : icon: Icons.money_off,
49 : route: AppRoute.billRoute,
50 : ),
51 3 : AppMenuItem(
52 6 : name: AppLocale.labels.currencyHeadline,
53 : icon: Icons.currency_exchange,
54 : route: AppRoute.currencyRoute,
55 : ),
56 3 : AppMenuItem(
57 6 : name: AppLocale.labels.metricsHeadline,
58 : icon: Icons.timeline,
59 : route: AppRoute.metricsRoute,
60 : ),
61 3 : AppMenuItem(
62 6 : name: AppLocale.labels.automationHeadline,
63 : icon: Icons.access_alarms,
64 : route: AppRoute.automationRoute,
65 : ),
66 3 : AppMenuItem(
67 6 : name: AppLocale.labels.settingsHeadline,
68 : icon: Icons.settings,
69 : route: AppRoute.settingsRoute,
70 : ),
71 9 : if (![TargetPlatform.iOS, TargetPlatform.macOS, TargetPlatform.android].contains(defaultTargetPlatform))
72 0 : AppMenuItem(
73 0 : name: AppLocale.labels.subscriptionHeadline,
74 : icon: Icons.switch_access_shortcut_add_outlined,
75 : route: AppRoute.subscriptionRoute,
76 : ),
77 3 : AppMenuItem(
78 6 : name: AppLocale.labels.aboutHeadline,
79 : icon: Icons.question_answer_outlined,
80 : route: AppRoute.aboutRoute,
81 : ),
82 : ];
83 : }
84 : }
|