LCOV - code coverage report
Current view: top level - lib/_classes/structure/navigation - app_menu.dart Coverage Total Hit
Test: lcov.info Lines: 95.1 % 41 39
Test Date: 2026-11-14 15:04:37 Functions: - 0 0

            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              : }
        

Generated by: LCOV version 2.0-1