Add migration scripts, remove dependencies to codegen, and cleanups

This commit is contained in:
Anton Stubenbord
2023-10-06 14:27:42 +02:00
parent 29b7c8bdc0
commit 5dcae3f0b3
32 changed files with 738 additions and 583 deletions

View File

@@ -12,10 +12,9 @@ import 'package:paperless_mobile/features/paged_document_view/cubit/document_pag
import 'package:paperless_mobile/features/paged_document_view/cubit/paged_documents_state.dart';
import 'package:paperless_mobile/features/settings/model/view_type.dart';
part 'documents_cubit.g.dart';
part 'documents_state.dart';
class DocumentsCubit extends HydratedCubit<DocumentsState>
class DocumentsCubit extends Cubit<DocumentsState>
with DocumentPagingBlocMixin {
@override
final PaperlessDocumentsApi api;
@@ -135,13 +134,13 @@ class DocumentsCubit extends HydratedCubit<DocumentsState>
await _userState.save();
}
@override
DocumentsState? fromJson(Map<String, dynamic> json) {
return DocumentsState.fromJson(json);
}
// @override
// DocumentsState? fromJson(Map<String, dynamic> json) {
// return DocumentsState.fromJson(json);
// }
@override
Map<String, dynamic>? toJson(DocumentsState state) {
return state.toJson();
}
// @override
// Map<String, dynamic>? toJson(DocumentsState state) {
// return state.toJson();
// }
}

View File

@@ -1,17 +1,10 @@
part of 'documents_cubit.dart';
@JsonSerializable()
class DocumentsState extends DocumentPagingState {
@JsonKey(includeToJson: false, includeFromJson: false)
final List<DocumentModel> selection;
@JsonKey(includeToJson: false, includeFromJson: false)
final Map<int, Correspondent> correspondents;
@JsonKey(includeToJson: false, includeFromJson: false)
final Map<int, DocumentType> documentTypes;
@JsonKey(includeToJson: false, includeFromJson: false)
final Map<int, Tag> tags;
@JsonKey(includeToJson: false, includeFromJson: false)
final Map<int, StoragePath> storagePaths;
final ViewType viewType;
@@ -85,9 +78,4 @@ class DocumentsState extends DocumentPagingState {
value: value,
);
}
factory DocumentsState.fromJson(Map<String, dynamic> json) =>
_$DocumentsStateFromJson(json);
Map<String, dynamic> toJson() => _$DocumentsStateToJson(this);
}

View File

@@ -252,7 +252,8 @@ class _DocumentsPageState extends State<DocumentsPage> {
cubit.resetSelection();
return false;
}
if (cubit.state.filter.appliedFiltersCount > 0 || cubit.state.filter.selectedView != null) {
if (cubit.state.filter.appliedFiltersCount > 0 ||
cubit.state.filter.selectedView != null) {
await _onResetFilter();
return false;
}
@@ -512,8 +513,8 @@ class _DocumentsPageState extends State<DocumentsPage> {
void _addTagToFilter(int tagId) {
final cubit = context.read<DocumentsCubit>();
try {
cubit.state.filter.tags.maybeMap(
ids: (state) {
switch (cubit.state.filter.tags) {
case IdsTagsQuery state:
if (state.include.contains(tagId)) {
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
@@ -541,13 +542,13 @@ class _DocumentsPageState extends State<DocumentsPage> {
),
);
}
},
orElse: () {
break;
default:
cubit.updateCurrentFilter(
(filter) => filter.copyWith(tags: TagsQuery.ids(include: [tagId])),
(filter) => filter.copyWith(tags: IdsTagsQuery(include: [tagId])),
);
},
);
break;
}
} on PaperlessApiException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}
@@ -558,27 +559,26 @@ class _DocumentsPageState extends State<DocumentsPage> {
final cubit = context.read<DocumentsCubit>();
try {
cubit.state.filter.correspondent.maybeWhen(
fromId: (id) {
switch (cubit.state.filter.correspondent) {
case SetIdQueryParameter(id: var id):
if (id == correspondentId) {
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
correspondent: const IdQueryParameter.unset()),
(filter) =>
filter.copyWith(correspondent: const UnsetIdQueryParameter()),
);
} else {
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
correspondent: IdQueryParameter.fromId(correspondentId)),
correspondent: SetIdQueryParameter(id: correspondentId)),
);
}
},
orElse: () {
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
correspondent: IdQueryParameter.fromId(correspondentId)),
);
},
);
break;
default:
cubit.updateCurrentFilter((filter) => filter.copyWith(
correspondent: SetIdQueryParameter(id: correspondentId),
));
break;
}
} on PaperlessApiException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}
@@ -589,27 +589,27 @@ class _DocumentsPageState extends State<DocumentsPage> {
final cubit = context.read<DocumentsCubit>();
try {
cubit.state.filter.documentType.maybeWhen(
fromId: (id) {
switch (cubit.state.filter.documentType) {
case SetIdQueryParameter(id: var id):
if (id == documentTypeId) {
cubit.updateCurrentFilter(
(filter) =>
filter.copyWith(documentType: const IdQueryParameter.unset()),
filter.copyWith(documentType: const UnsetIdQueryParameter()),
);
} else {
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
documentType: IdQueryParameter.fromId(documentTypeId)),
documentType: SetIdQueryParameter(id: documentTypeId)),
);
}
},
orElse: () {
break;
default:
cubit.updateCurrentFilter(
(filter) => filter.copyWith(
documentType: IdQueryParameter.fromId(documentTypeId)),
documentType: SetIdQueryParameter(id: documentTypeId)),
);
},
);
break;
}
} on PaperlessApiException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}
@@ -620,27 +620,28 @@ class _DocumentsPageState extends State<DocumentsPage> {
final cubit = context.read<DocumentsCubit>();
try {
cubit.state.filter.storagePath.maybeWhen(
fromId: (id) {
if (id == pathId) {
switch (cubit.state.filter.storagePath){
case SetIdQueryParameter(id: var id):
if (id == pathId) {
cubit.updateCurrentFilter(
(filter) =>
filter.copyWith(storagePath: const IdQueryParameter.unset()),
filter.copyWith(storagePath: const UnsetIdQueryParameter()),
);
} else {
cubit.updateCurrentFilter(
(filter) =>
filter.copyWith(storagePath: IdQueryParameter.fromId(pathId)),
filter.copyWith(storagePath: SetIdQueryParameter(id: pathId)),
);
}
},
orElse: () {
cubit.updateCurrentFilter(
break;
default:
cubit.updateCurrentFilter(
(filter) =>
filter.copyWith(storagePath: IdQueryParameter.fromId(pathId)),
filter.copyWith(storagePath: SetIdQueryParameter(id: pathId)),
);
},
);
break;
}
} on PaperlessApiException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}