WIP - Provider refactorings

This commit is contained in:
Anton Stubenbord
2022-12-27 00:12:33 +01:00
parent 60aecb549d
commit bf0e186646
53 changed files with 434 additions and 416 deletions

View File

@@ -12,7 +12,7 @@ class CorrespondentBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<Correspondent>(
RepositoryProvider.of<LabelRepository<Correspondent>>(context),
context.read<LabelRepository<Correspondent>>(),
),
child: child,
);

View File

@@ -12,7 +12,7 @@ class DocumentTypeBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<DocumentType>(
RepositoryProvider.of<LabelRepository<DocumentType>>(context),
context.read<LabelRepository<DocumentType>>(),
),
child: child,
);

View File

@@ -14,22 +14,22 @@ class LabelsBlocProvider extends StatelessWidget {
providers: [
BlocProvider<LabelCubit<StoragePath>>(
create: (context) => LabelCubit<StoragePath>(
RepositoryProvider.of<LabelRepository<StoragePath>>(context),
context.read<LabelRepository<StoragePath>>(),
),
),
BlocProvider<LabelCubit<Correspondent>>(
create: (context) => LabelCubit<Correspondent>(
RepositoryProvider.of<LabelRepository<Correspondent>>(context),
context.read<LabelRepository<Correspondent>>(),
),
),
BlocProvider<LabelCubit<DocumentType>>(
create: (context) => LabelCubit<DocumentType>(
RepositoryProvider.of<LabelRepository<DocumentType>>(context),
context.read<LabelRepository<DocumentType>>(),
),
),
BlocProvider<LabelCubit<Tag>>(
create: (context) => LabelCubit<Tag>(
RepositoryProvider.of<LabelRepository<Tag>>(context),
context.read<LabelRepository<Tag>>(),
),
),
],

View File

@@ -12,7 +12,7 @@ class StoragePathBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<StoragePath>(
RepositoryProvider.of<LabelRepository<StoragePath>>(context),
context.read<LabelRepository<StoragePath>>(),
),
child: child,
);

View File

@@ -12,7 +12,7 @@ class TagBlocProvider extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<Tag>(
RepositoryProvider.of<LabelRepository<Tag>>(context),
context.read<LabelRepository<Tag>>(),
),
child: child,
);

View File

@@ -4,6 +4,7 @@ import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/features/labels/bloc/label_cubit.dart';
import 'package:paperless_mobile/features/labels/bloc/label_state.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/document_type_bloc_provider.dart';
class DocumentTypeWidget extends StatelessWidget {
final int? documentTypeId;
@@ -20,10 +21,7 @@ class DocumentTypeWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<DocumentType>(
RepositoryProvider.of<LabelRepository<DocumentType>>(context),
),
return DocumentTypeBlocProvider(
child: AbsorbPointer(
absorbing: !isClickable,
child: GestureDetector(

View File

@@ -4,6 +4,7 @@ import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/features/labels/bloc/label_cubit.dart';
import 'package:paperless_mobile/features/labels/bloc/label_state.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/storage_path_bloc_provider.dart';
class StoragePathWidget extends StatelessWidget {
final int? pathId;
@@ -21,10 +22,7 @@ class StoragePathWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => LabelCubit<StoragePath>(
RepositoryProvider.of<LabelRepository<StoragePath>>(context),
),
return StoragePathBlocProvider(
child: AbsorbPointer(
absorbing: !isClickable,
child: BlocBuilder<LabelCubit<StoragePath>, LabelState<StoragePath>>(

View File

@@ -218,8 +218,8 @@ class _TagFormFieldState extends State<TagFormField> {
void _onAddTag(BuildContext context, FormFieldState<TagsQuery> field) async {
final Tag? tag = await Navigator.of(context).push<Tag>(
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<Tag>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<Tag>>(),
child: AddTagPage(initialValue: _textEditingController.text),
),
),

View File

@@ -14,6 +14,10 @@ import 'package:paperless_mobile/features/edit_label/view/impl/edit_storage_path
import 'package:paperless_mobile/features/edit_label/view/impl/edit_tag_page.dart';
import 'package:paperless_mobile/features/home/view/widget/info_drawer.dart';
import 'package:paperless_mobile/features/labels/bloc/label_cubit.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/correspondent_bloc_provider.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/document_type_bloc_provider.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/storage_path_bloc_provider.dart';
import 'package:paperless_mobile/features/labels/bloc/providers/tag_bloc_provider.dart';
import 'package:paperless_mobile/features/labels/view/widgets/label_tab_view.dart';
import 'package:paperless_mobile/generated/l10n.dart';
@@ -119,11 +123,7 @@ class _LabelsPageState extends State<LabelsPage>
body: TabBarView(
controller: _tabController,
children: [
BlocProvider(
create: (context) => LabelCubit(
RepositoryProvider.of<LabelRepository<Correspondent>>(
context),
),
CorrespondentBlocProvider(
child: LabelTabView<Correspondent>(
filterBuilder: (label) => DocumentFilter(
correspondent: IdQueryParameter.fromId(label.id),
@@ -139,11 +139,7 @@ class _LabelsPageState extends State<LabelsPage>
onAddNew: _openAddCorrespondentPage,
),
),
BlocProvider(
create: (context) => LabelCubit(
RepositoryProvider.of<LabelRepository<DocumentType>>(
context),
),
DocumentTypeBlocProvider(
child: LabelTabView<DocumentType>(
filterBuilder: (label) => DocumentFilter(
documentType: IdQueryParameter.fromId(label.id),
@@ -159,10 +155,7 @@ class _LabelsPageState extends State<LabelsPage>
onAddNew: _openAddDocumentTypePage,
),
),
BlocProvider(
create: (context) => LabelCubit<Tag>(
RepositoryProvider.of<LabelRepository<Tag>>(context),
),
TagBlocProvider(
child: LabelTabView<Tag>(
filterBuilder: (label) => DocumentFilter(
tags: IdsTagsQuery.fromIds([label.id!]),
@@ -186,11 +179,7 @@ class _LabelsPageState extends State<LabelsPage>
onAddNew: _openAddTagPage,
),
),
BlocProvider(
create: (context) => LabelCubit<StoragePath>(
RepositoryProvider.of<LabelRepository<StoragePath>>(
context),
),
StoragePathBlocProvider(
child: LabelTabView<StoragePath>(
onEdit: _openEditStoragePathPage,
filterBuilder: (label) => DocumentFilter(
@@ -219,8 +208,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<Correspondent>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<Correspondent>>(),
child: EditCorrespondentPage(correspondent: correspondent),
),
),
@@ -231,8 +220,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<DocumentType>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<DocumentType>>(),
child: EditDocumentTypePage(documentType: docType),
),
),
@@ -243,8 +232,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<Tag>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<Tag>>(),
child: EditTagPage(tag: tag),
),
),
@@ -255,8 +244,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<StoragePath>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<StoragePath>>(),
child: EditStoragePathPage(
storagePath: path,
),
@@ -269,8 +258,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<Correspondent>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<Correspondent>>(),
child: const AddCorrespondentPage(),
),
),
@@ -281,8 +270,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<DocumentType>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<DocumentType>>(),
child: const AddDocumentTypePage(),
),
),
@@ -293,8 +282,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<Tag>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<Tag>>(),
child: const AddTagPage(),
),
),
@@ -305,8 +294,8 @@ class _LabelsPageState extends State<LabelsPage>
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => RepositoryProvider.value(
value: RepositoryProvider.of<LabelRepository<StoragePath>>(context),
builder: (_) => RepositoryProvider(
create: (context) => context.read<LabelRepository<StoragePath>>(),
child: const AddStoragePathPage(),
),
),

View File

@@ -47,7 +47,7 @@ class LabelItem<T extends Label> extends StatelessWidget {
MaterialPageRoute(
builder: (context) => BlocProvider(
create: (context) => LinkedDocumentsCubit(
Provider.of<PaperlessDocumentsApi>(context),
context.read<PaperlessDocumentsApi>(),
filter,
),
child: const LinkedDocumentsPage(),

View File

@@ -63,7 +63,7 @@ class LabelTabView<T extends Label> extends StatelessWidget {
);
}
return RefreshIndicator(
onRefresh: BlocProvider.of<LabelCubit<T>>(context).reload,
onRefresh: context.read<LabelCubit<T>>().reload,
child: ListView(
children: labels
.map(