From 9d388edd0c37925ded7f86a9ed5ac81b38fe505d Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Sat, 7 Dec 2024 21:28:50 +0800 Subject: [PATCH] Fix slideshow used before init --- app/lib/widget/slideshow_viewer/bloc.dart | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/lib/widget/slideshow_viewer/bloc.dart b/app/lib/widget/slideshow_viewer/bloc.dart index 67603833..6f470f7a 100644 --- a/app/lib/widget/slideshow_viewer/bloc.dart +++ b/app/lib/widget/slideshow_viewer/bloc.dart @@ -74,20 +74,26 @@ class _Bloc extends Bloc<_Event, _State> with BlocLogger { emit(state.copyWith( hasInit: true, page: initialPage, - currentFile: getFileByPageIndex(initialPage), hasPrev: initialPage > 0, hasNext: pageCount == null || initialPage < (pageCount! - 1), )); + if (state.files.isNotEmpty) { + emit(state.copyWith( + currentFile: getFileByPageIndex(initialPage), + )); + } unawaited(_prepareNextPage()); } void _onSetFiles(_SetFiles ev, Emitter<_State> emit) { _log.info(ev); final files = fileIds.map((e) => ev.dataMap[e]).toList(); - emit(state.copyWith( - files: files, - currentFile: files[convertPageToFileIndex(state.page)], - )); + emit(state.copyWith(files: files)); + if (state.hasInit) { + emit(state.copyWith( + currentFile: files[convertPageToFileIndex(state.page)], + )); + } } void _onToggleShowUi(_ToggleShowUi ev, Emitter<_State> emit) {