Refactored json storage

This commit is contained in:
2024-02-17 14:16:07 +01:00
parent 1a7f28703a
commit b2da8436e4
29 changed files with 389 additions and 235 deletions

View File

@@ -6,7 +6,7 @@ import 'package:tunas/pages/common/titled_container.dart';
class AccountSettings extends StatelessWidget {
const AccountSettings({super.key});
List<Widget> _computeCategoryList(Set<String> subAccounts) {
List<Widget> _computeCategoryList(List<String> subAccounts) {
return subAccounts.map((subAccount) => Row(
children: [
Text(subAccount),
@@ -23,7 +23,7 @@ class AccountSettings extends StatelessWidget {
scrollDirection: Axis.vertical,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: _computeCategoryList(state.subAccounts),
children: _computeCategoryList(state.accounts.map((account) => account.label).toList()),
),
),
),

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:tunas/domains/category/category_bloc.dart';
import 'package:tunas/pages/common/titled_container.dart';
import 'package:tunas/repositories/account/models/category.dart';
import 'package:tunas/repositories/metadata/models/category.dart';
class CategoriesSettings extends StatelessWidget {
const CategoriesSettings({super.key});

View File

@@ -8,7 +8,8 @@ import 'package:tunas/pages/budgets/budgets_page.dart';
import 'package:tunas/pages/data/data_page.dart';
import 'package:tunas/pages/stats/stats_page.dart';
import 'package:tunas/pages/transactions/transactions_page.dart';
import 'package:tunas/repositories/account/account_repository.dart';
import 'package:tunas/repositories/metadata/metadata_repository.dart';
import 'package:tunas/repositories/transactions/transactions_repository.dart';
class HomePage extends StatelessWidget {
const HomePage({super.key});
@@ -17,10 +18,10 @@ class HomePage extends StatelessWidget {
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(create: (context) => AccountBloc(accountRepository: RepositoryProvider.of<AccountRepository>(context))),
BlocProvider(create: (context) => TransactionBloc(accountRepository: RepositoryProvider.of<AccountRepository>(context))),
BlocProvider(create: (context) => CategoryBloc(accountRepository: RepositoryProvider.of<AccountRepository>(context))),
BlocProvider(create: (context) => BudgetBloc(accountRepository: RepositoryProvider.of<AccountRepository>(context))),
BlocProvider(create: (context) => AccountBloc(transactionsRepository: RepositoryProvider.of<TransactionsRepository>(context), metadataRepository: RepositoryProvider.of<MetadataRepository>(context))),
BlocProvider(create: (context) => TransactionBloc(transactionsRepository: RepositoryProvider.of<TransactionsRepository>(context))),
BlocProvider(create: (context) => CategoryBloc(metadataRepository: RepositoryProvider.of<MetadataRepository>(context))),
BlocProvider(create: (context) => BudgetBloc(metadataRepository: RepositoryProvider.of<MetadataRepository>(context))),
],
child: DefaultTabController(
length: 4,

View File

@@ -8,7 +8,8 @@ import 'package:tunas/pages/stats/widgets/monthly_categories_total_chart.dart';
import 'package:tunas/pages/stats/widgets/global_total_chart.dart';
import 'package:tunas/pages/stats/widgets/profit_indicator.dart';
import 'package:tunas/pages/stats/widgets/year_selector.dart';
import 'package:tunas/repositories/account/account_repository.dart';
import 'package:tunas/repositories/metadata/metadata_repository.dart';
import 'package:tunas/repositories/transactions/transactions_repository.dart';
class StatsPage extends StatelessWidget {
const StatsPage({super.key});
@@ -16,7 +17,10 @@ class StatsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => ChartBloc(accountRepository: RepositoryProvider.of<AccountRepository>(context)),
create: (context) => ChartBloc(
metadataRepository: RepositoryProvider.of<MetadataRepository>(context),
transactionsRepository: RepositoryProvider.of<TransactionsRepository>(context),
),
child: BlocBuilder<ChartBloc, ChartState>(
builder: (context, state) => ListView(
children: [

View File

@@ -4,7 +4,7 @@ import 'package:tunas/domains/account/account_bloc.dart';
import 'package:tunas/domains/category/category_bloc.dart';
import 'package:tunas/domains/transaction/transaction_bloc.dart';
import 'package:tunas/pages/transactions/widgets/transaction_form.dart';
import 'package:tunas/repositories/account/models/transaction.dart';
import 'package:tunas/repositories/transactions/models/transaction.dart';
class TransactionAddDialog extends StatelessWidget {
const TransactionAddDialog({super.key});

View File

@@ -126,7 +126,7 @@ class _TransactionAccountInput extends StatelessWidget {
child: DropdownButtonFormField<String>(
value: state.transactionAccount.value.toString() == '' ? null : state.transactionAccount.value.toString(),
onChanged: (value) => context.read<TransactionBloc>().add(TransactionAccountChange(value!)),
items: accountState.subAccounts.map((e) => DropdownMenuItem(value: e, child: Text(e))).toList(),
items: accountState.accounts.map((e) => DropdownMenuItem(value: e.label, child: Text(e.label))).toList(),
decoration: InputDecoration(
icon: const Icon(Icons.account_box),
hintText: 'Account',

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:tunas/pages/transactions/widgets/transaction_add_dialog.dart';
import 'package:tunas/repositories/account/models/transaction.dart';
import 'package:tunas/repositories/transactions/models/transaction.dart';
class TransactionLine extends StatelessWidget {
final Transaction transaction;