LCOV - code coverage report
Current view: top level - lib/pages/budget - budget_edit_page.dart Coverage Total Hit
Test: lcov.info Lines: 0.0 % 37 0
Test Date: 2026-11-14 15:08:11 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/budget_app_data.dart';
       6              : import 'package:app_finance/pages/budget/budget_add_page.dart';
       7              : import 'package:material_ui/material_ui.dart';
       8              : 
       9              : class BudgetEditPage extends BudgetAddPage {
      10            0 :   const BudgetEditPage({
      11              :     super.key,
      12              :     required super.uuid,
      13              :   });
      14              : 
      15            0 :   @override
      16            0 :   BudgetEditPageState createState() => BudgetEditPageState();
      17              : }
      18              : 
      19              : class BudgetEditPageState extends BudgetAddPageState<BudgetEditPage> {
      20              :   late String uuid;
      21              :   bool isFirstRun = true;
      22              : 
      23            0 :   @override
      24              :   void initState() {
      25            0 :     uuid = widget.uuid!;
      26            0 :     super.initState();
      27              :   }
      28              : 
      29            0 :   void bindState() {
      30            0 :     if (!isFirstRun) {
      31              :       return;
      32              :     }
      33            0 :     setState(() {
      34            0 :       isFirstRun = false;
      35            0 :       final form = super.state.getByUuid(uuid) as BudgetAppData;
      36            0 :       title.text = form.title;
      37            0 :       type = form.type;
      38            0 :       budgetLimit.text = form.amountLimit.toString();
      39            0 :       amountSet = form.amountSet;
      40            0 :       color = form.color;
      41            0 :       icon = form.icon;
      42            0 :       currency = form.currency;
      43            0 :       skip = form.skip;
      44              :     });
      45              :   }
      46              : 
      47            0 :   @override
      48              :   String getTitle() {
      49            0 :     return AppLocale.labels.editBudgetHeader;
      50              :   }
      51              : 
      52            0 :   @override
      53              :   void updateStorage() {
      54            0 :     var data = state.getByUuid(uuid) as BudgetAppData;
      55            0 :     data.title = title.text;
      56            0 :     data.color = color;
      57            0 :     data.icon = icon;
      58            0 :     data.amountSet = amountSet;
      59            0 :     data.amountLimit = double.tryParse(budgetLimit.text) ?? 0.0;
      60            0 :     data.currency = currency;
      61            0 :     data.createdAt = DateTime.now();
      62            0 :     data.skip = skip;
      63            0 :     state.update(uuid, data);
      64              :   }
      65              : 
      66            0 :   @override
      67            0 :   String getButtonName() => AppLocale.labels.updateBudgetTooltip;
      68              : 
      69            0 :   @override
      70              :   Widget buildContent(BuildContext context, BoxConstraints constraints) {
      71            0 :     WidgetsBinding.instance.addPostFrameCallback((_) => bindState());
      72            0 :     return super.buildContent(context, constraints);
      73              :   }
      74              : }
        

Generated by: LCOV version 2.0-1