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:material_ui/material_ui.dart';
9 :
10 : class AppMenu {
11 6 : static RouteSettings metrics(String? route) {
12 : final key = switch (route) {
13 6 : AppRoute.accountRoute => '1',
14 6 : AppRoute.budgetRoute => '0',
15 : _ => '2',
16 : };
17 12 : 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 6 : static List<AppMenuItem> get() {
25 6 : return [
26 6 : AppMenuItem(
27 12 : name: AppLocale.labels.homeHeadline,
28 : icon: Icons.home,
29 : route: AppRoute.homeRoute,
30 : ),
31 6 : AppMenuItem(
32 12 : name: AppLocale.labels.goalHeadline,
33 : icon: Icons.star,
34 : route: AppRoute.goalRoute,
35 : ),
36 6 : AppMenuItem(
37 12 : name: AppLocale.labels.accountHeadline,
38 : icon: Icons.credit_card,
39 : route: AppRoute.accountRoute,
40 : ),
41 6 : AppMenuItem(
42 12 : name: AppLocale.labels.budgetHeadline,
43 : icon: Icons.calendar_month,
44 : route: AppRoute.budgetRoute,
45 : ),
46 6 : AppMenuItem(
47 12 : name: AppLocale.labels.billHeadline,
48 : icon: Icons.money_off,
49 : route: AppRoute.billRoute,
50 : ),
51 6 : AppMenuItem(
52 12 : name: AppLocale.labels.invoiceHeadline,
53 : icon: Icons.attach_money,
54 : route: AppRoute.invoiceRoute,
55 : ),
56 6 : AppMenuItem(
57 12 : name: AppLocale.labels.transfersHeadline,
58 : icon: Icons.transform,
59 : route: AppRoute.invoiceTransferRoute,
60 : ),
61 6 : AppMenuItem(
62 12 : name: AppLocale.labels.currencyHeadline,
63 : icon: Icons.currency_exchange,
64 : route: AppRoute.currencyRoute,
65 : ),
66 6 : AppMenuItem(
67 12 : name: AppLocale.labels.metricsHeadline,
68 : icon: Icons.timeline,
69 : route: AppRoute.metricsRoute,
70 : ),
71 6 : AppMenuItem(
72 12 : name: AppLocale.labels.automationHeadline,
73 : icon: Icons.access_alarms,
74 : route: AppRoute.automationRoute,
75 : ),
76 6 : AppMenuItem(
77 12 : name: AppLocale.labels.integrationHeadline,
78 : icon: Icons.hub,
79 : route: AppRoute.integrationRoute,
80 : ),
81 6 : AppMenuItem(
82 12 : name: AppLocale.labels.settingsHeadline,
83 : icon: Icons.settings,
84 : route: AppRoute.settingsRoute,
85 : ),
86 6 : AppMenuItem(
87 12 : name: AppLocale.labels.securityHeadline,
88 : icon: Icons.security,
89 : route: AppRoute.securityRoute,
90 : ),
91 18 : if (![TargetPlatform.iOS, TargetPlatform.macOS, TargetPlatform.android].contains(defaultTargetPlatform))
92 0 : AppMenuItem(
93 0 : name: AppLocale.labels.subscriptionHeadline,
94 : icon: Icons.switch_access_shortcut_add_outlined,
95 : route: AppRoute.subscriptionRoute,
96 : ),
97 6 : AppMenuItem(
98 12 : name: AppLocale.labels.managerHeadline,
99 : icon: Icons.manage_history,
100 : route: AppRoute.managerRoute,
101 : ),
102 6 : AppMenuItem(
103 12 : name: AppLocale.labels.aboutHeadline,
104 : icon: Icons.question_answer_outlined,
105 : route: AppRoute.aboutRoute,
106 : ),
107 : ];
108 : }
109 : }
|