WIP - more decoupling of blocs

This commit is contained in:
Anton Stubenbord
2022-12-12 01:29:34 +01:00
parent e2a20cea75
commit 2f31d9c053
51 changed files with 1083 additions and 800 deletions

View File

@@ -1,20 +1,21 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/di_initializer.dart';
import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart';
import 'package:paperless_mobile/features/saved_view/view/add_saved_view_page.dart';
import 'package:paperless_mobile/features/documents/view/widgets/selection/confirm_delete_saved_view_dialog.dart';
import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart';
import 'package:paperless_mobile/features/saved_view/cubit/saved_view_state.dart';
import 'package:paperless_mobile/features/saved_view/view/add_saved_view_page.dart';
import 'package:paperless_mobile/generated/l10n.dart';
import 'package:paperless_mobile/util.dart';
class SavedViewSelectionWidget extends StatelessWidget {
final DocumentFilter currentFilter;
const SavedViewSelectionWidget({
Key? key,
required this.height,
required this.enabled,
required this.currentFilter,
}) : super(key: key);
final double height;
@@ -64,10 +65,18 @@ class SavedViewSelectionWidget extends StatelessWidget {
S.of(context).savedViewsLabel,
style: Theme.of(context).textTheme.titleSmall,
),
TextButton.icon(
icon: const Icon(Icons.add),
onPressed: enabled ? () => _onCreatePressed(context) : null,
label: Text(S.of(context).savedViewCreateNewLabel),
BlocBuilder<DocumentsCubit, DocumentsState>(
buildWhen: (previous, current) =>
previous.filter != current.filter,
builder: (context, docState) {
return TextButton.icon(
icon: const Icon(Icons.add),
onPressed: enabled
? () => _onCreatePressed(context, docState.filter)
: null,
label: Text(S.of(context).savedViewCreateNewLabel),
);
},
),
],
),
@@ -75,11 +84,11 @@ class SavedViewSelectionWidget extends StatelessWidget {
);
}
void _onCreatePressed(BuildContext context) async {
void _onCreatePressed(BuildContext context, DocumentFilter filter) async {
final newView = await Navigator.of(context).push<SavedView?>(
MaterialPageRoute(
builder: (context) => AddSavedViewPage(
currentFilter: getIt<DocumentsCubit>().state.filter,
currentFilter: filter,
),
),
);