LCOV - code coverage report
Current view: top level - lib/pages/metrics - metrics_page.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 1 27 3.7 %
Date: 2024-10-04 11:09:33 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/_configs/theme_helper.dart';
       6             : import 'package:app_finance/pages/_interfaces/abstract_page_state.dart';
       7             : import 'package:app_finance/design/wrapper/tab_widget.dart';
       8             : import 'package:app_finance/pages/metrics/widgets/account_tab.dart';
       9             : import 'package:app_finance/pages/metrics/widgets/bill_tab.dart';
      10             : import 'package:app_finance/pages/metrics/widgets/budget_tab.dart';
      11             : import 'package:flutter/material.dart';
      12             : 
      13             : class MetricsPage extends StatefulWidget {
      14             :   final String? search;
      15             : 
      16           5 :   const MetricsPage({
      17             :     super.key,
      18             :     this.search,
      19             :   });
      20             : 
      21           0 :   @override
      22           0 :   MetricsPageState createState() => MetricsPageState();
      23             : }
      24             : 
      25             : class MetricsPageState extends AbstractPageState<MetricsPage> {
      26             :   late int tab = int.tryParse(widget.search ?? '') ?? 0;
      27             : 
      28           0 :   @override
      29           0 :   String getTitle() => AppLocale.labels.metricsTooltip;
      30             : 
      31           0 :   @override
      32             :   Widget buildButton(BuildContext context, BoxConstraints constraints) => ThemeHelper.emptyBox;
      33             : 
      34           0 :   @override
      35             :   String getButtonName() => '';
      36             : 
      37           0 :   @override
      38           0 :   String? getHelperName() => switch (tab) {
      39           0 :         0 => 'help_metrics_budget',
      40           0 :         1 => 'help_metrics_account',
      41           0 :         2 => 'help_metrics_bill',
      42             :         _ => null,
      43             :       };
      44             : 
      45           0 :   @override
      46             :   Widget buildContent(BuildContext context, BoxConstraints constraints) {
      47           0 :     return TabWidget(
      48           0 :       focus: tab,
      49             :       type: TabType.secondary,
      50           0 :       isLeft: ThemeHelper.isNavRight(context, constraints),
      51           0 :       callback: (idx) => setState(() => tab = idx),
      52           0 :       tabs: [
      53           0 :         Tab(
      54             :           icon: const Icon(Icons.graphic_eq),
      55           0 :           text: AppLocale.labels.budgetHeadline,
      56             :         ),
      57           0 :         Tab(
      58             :           icon: const Icon(Icons.incomplete_circle),
      59           0 :           text: AppLocale.labels.accountHeadline,
      60             :         ),
      61           0 :         Tab(
      62             :           icon: const Icon(Icons.bar_chart),
      63           0 :           text: AppLocale.labels.billHeadline,
      64             :         ),
      65             :       ],
      66           0 :       children: [
      67             :         const BudgetTab(),
      68           0 :         AccountTab(store: super.state),
      69           0 :         BillTab(store: super.state),
      70             :       ],
      71             :     );
      72             :   }
      73             : }

Generated by: LCOV version 1.14