feat: Add saved views to landing page

This commit is contained in:
Anton Stubenbord
2023-08-01 19:49:09 +02:00
parent 53a01ae775
commit b79375cbe0
10 changed files with 198 additions and 36 deletions

View File

@@ -29,6 +29,7 @@ class SavedViewDetailsCubit extends Cubit<SavedViewDetailsState>
this._labelRepository,
this._userState, {
required this.savedView,
int initialCount = 25,
}) : super(
SavedViewDetailsState(
correspondents: _labelRepository.state.correspondents,
@@ -56,7 +57,12 @@ class SavedViewDetailsCubit extends Cubit<SavedViewDetailsState>
}
},
);
updateFilter(filter: savedView.toDocumentFilter());
updateFilter(
filter: savedView.toDocumentFilter().copyWith(
page: 1,
pageSize: initialCount,
),
);
}
void setViewType(ViewType viewType) {

View File

@@ -0,0 +1,28 @@
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:paperless_api/paperless_api.dart';
part 'saved_view_preview_state.dart';
part 'saved_view_preview_cubit.freezed.dart';
class SavedViewPreviewCubit extends Cubit<SavedViewPreviewState> {
final PaperlessDocumentsApi _api;
final SavedView view;
SavedViewPreviewCubit(this._api, this.view)
: super(const SavedViewPreviewState.initial());
Future<void> initialize() async {
emit(const SavedViewPreviewState.loading());
try {
final documents = await _api.findAll(
view.toDocumentFilter().copyWith(
page: 1,
pageSize: 5,
),
);
emit(SavedViewPreviewState.loaded(documents: documents.results));
} catch (e) {
emit(const SavedViewPreviewState.error());
}
}
}

View File

@@ -0,0 +1,11 @@
part of 'saved_view_preview_cubit.dart';
@freezed
class SavedViewPreviewState with _$SavedViewPreviewState {
const factory SavedViewPreviewState.initial() = _Initial;
const factory SavedViewPreviewState.loading() = _Loading;
const factory SavedViewPreviewState.loaded({
required List<DocumentModel> documents,
}) = _Loaded;
const factory SavedViewPreviewState.error() = _Error;
}