chore(all): Format
This commit is contained in:
@@ -30,30 +30,35 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
}
|
||||
|
||||
/// Internal anime state
|
||||
final List<AnimeTrackingData> _animes = List<AnimeTrackingData>.empty(growable: true);
|
||||
final List<MangaTrackingData> _mangas = List<MangaTrackingData>.empty(growable: true);
|
||||
final List<AnimeTrackingData> _animes =
|
||||
List<AnimeTrackingData>.empty(growable: true);
|
||||
final List<MangaTrackingData> _mangas =
|
||||
List<MangaTrackingData>.empty(growable: true);
|
||||
|
||||
List<AnimeTrackingData> _getFilteredAnime({MediumTrackingState? trackingState}) {
|
||||
List<AnimeTrackingData> _getFilteredAnime({
|
||||
MediumTrackingState? trackingState,
|
||||
}) {
|
||||
final filterState = trackingState ?? state.animeFilterState;
|
||||
|
||||
if (filterState == MediumTrackingState.all) return _animes;
|
||||
|
||||
return _animes
|
||||
.where((anime) => anime.state == filterState)
|
||||
.toList();
|
||||
return _animes.where((anime) => anime.state == filterState).toList();
|
||||
}
|
||||
|
||||
List<MangaTrackingData> _getFilteredManga({MediumTrackingState? trackingState}) {
|
||||
List<MangaTrackingData> _getFilteredManga({
|
||||
MediumTrackingState? trackingState,
|
||||
}) {
|
||||
final filterState = trackingState ?? state.mangaFilterState;
|
||||
|
||||
if (state.mangaFilterState == MediumTrackingState.all) return _mangas;
|
||||
|
||||
return _mangas
|
||||
.where((manga) => manga.state == filterState)
|
||||
.toList();
|
||||
return _mangas.where((manga) => manga.state == filterState).toList();
|
||||
}
|
||||
|
||||
Future<void> _onAnimeAdded(AnimeAddedEvent event, Emitter<AnimeListState> emit) async {
|
||||
|
||||
Future<void> _onAnimeAdded(
|
||||
AnimeAddedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
// Add the anime to the database
|
||||
await GetIt.I.get<DatabaseService>().addAnime(event.data);
|
||||
|
||||
@@ -67,7 +72,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onMangaAdded(MangaAddedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onMangaAdded(
|
||||
MangaAddedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
// Add the manga to the database
|
||||
await GetIt.I.get<DatabaseService>().addManga(event.data);
|
||||
|
||||
@@ -80,13 +88,17 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onAnimeIncremented(AnimeEpisodeIncrementedEvent event, Emitter<AnimeListState> emit) async {
|
||||
|
||||
Future<void> _onAnimeIncremented(
|
||||
AnimeEpisodeIncrementedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = state.animes.indexWhere((item) => item.id == event.id);
|
||||
if (index == -1) return;
|
||||
|
||||
final anime = state.animes[index];
|
||||
if (anime.episodesTotal != null && anime.episodesWatched + 1 > anime.episodesTotal!) return;
|
||||
if (anime.episodesTotal != null &&
|
||||
anime.episodesWatched + 1 > anime.episodesTotal!) return;
|
||||
|
||||
final newList = List<AnimeTrackingData>.from(state.animes);
|
||||
final newAnime = anime.copyWith(
|
||||
@@ -103,7 +115,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
await GetIt.I.get<DatabaseService>().updateAnime(newAnime);
|
||||
}
|
||||
|
||||
Future<void> _onAnimeDecremented(AnimeEpisodeDecrementedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onAnimeDecremented(
|
||||
AnimeEpisodeDecrementedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = state.animes.indexWhere((item) => item.id == event.id);
|
||||
if (index == -1) return;
|
||||
|
||||
@@ -125,14 +140,17 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
await GetIt.I.get<DatabaseService>().updateAnime(newAnime);
|
||||
}
|
||||
|
||||
Future<void> _onAnimesLoaded(AnimesLoadedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onAnimesLoaded(
|
||||
AnimesLoadedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
_animes.addAll(
|
||||
await GetIt.I.get<DatabaseService>().loadAnimes(),
|
||||
);
|
||||
_mangas.addAll(
|
||||
await GetIt.I.get<DatabaseService>().loadMangas(),
|
||||
);
|
||||
|
||||
|
||||
emit(
|
||||
state.copyWith(
|
||||
animes: _getFilteredAnime(),
|
||||
@@ -141,7 +159,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onAnimesFiltered(AnimeFilterChangedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onAnimesFiltered(
|
||||
AnimeFilterChangedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
animeFilterState: event.filterState,
|
||||
@@ -150,7 +171,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onMangasFiltered(MangaFilterChangedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onMangasFiltered(
|
||||
MangaFilterChangedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
mangaFilterState: event.filterState,
|
||||
@@ -158,8 +182,11 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onTrackingTypeChanged(AnimeTrackingTypeChanged event, Emitter<AnimeListState> emit) async {
|
||||
|
||||
Future<void> _onTrackingTypeChanged(
|
||||
AnimeTrackingTypeChanged event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
trackingType: event.type,
|
||||
@@ -168,12 +195,16 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onMangaIncremented(MangaChapterIncrementedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onMangaIncremented(
|
||||
MangaChapterIncrementedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = state.mangas.indexWhere((item) => item.id == event.id);
|
||||
assert(index != -1, 'The manga must exist');
|
||||
|
||||
final manga = state.mangas[index];
|
||||
if (manga.chaptersTotal != null && manga.chaptersRead + 1 > manga.chaptersTotal!) return;
|
||||
if (manga.chaptersTotal != null &&
|
||||
manga.chaptersRead + 1 > manga.chaptersTotal!) return;
|
||||
|
||||
final newList = List<MangaTrackingData>.from(state.mangas);
|
||||
final newManga = manga.copyWith(
|
||||
@@ -185,7 +216,7 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
final cacheIndex = _mangas.indexWhere((m) => m.id == event.id);
|
||||
assert(cacheIndex != -1, 'The manga must exist');
|
||||
_mangas[cacheIndex] = newManga;
|
||||
|
||||
|
||||
emit(
|
||||
state.copyWith(
|
||||
mangas: newList,
|
||||
@@ -195,7 +226,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
await GetIt.I.get<DatabaseService>().updateManga(newManga);
|
||||
}
|
||||
|
||||
Future<void> _onMangaDecremented(MangaChapterDecrementedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onMangaDecremented(
|
||||
MangaChapterDecrementedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = state.mangas.indexWhere((item) => item.id == event.id);
|
||||
if (index == -1) return;
|
||||
|
||||
@@ -212,7 +246,7 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
final cacheIndex = _mangas.indexWhere((m) => m.id == event.id);
|
||||
assert(cacheIndex != -1, 'The manga must exist');
|
||||
_mangas[cacheIndex] = newManga;
|
||||
|
||||
|
||||
emit(
|
||||
state.copyWith(
|
||||
mangas: newList,
|
||||
@@ -222,7 +256,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
await GetIt.I.get<DatabaseService>().updateManga(newManga);
|
||||
}
|
||||
|
||||
Future<void> _onAnimeUpdated(AnimeUpdatedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onAnimeUpdated(
|
||||
AnimeUpdatedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = _animes.indexWhere((anime) => anime.id == event.anime.id);
|
||||
assert(index != -1, 'The anime must exist');
|
||||
|
||||
@@ -235,7 +272,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onMangaUpdated(MangaUpdatedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onMangaUpdated(
|
||||
MangaUpdatedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
final index = _mangas.indexWhere((manga) => manga.id == event.manga.id);
|
||||
assert(index != -1, 'The manga must exist');
|
||||
|
||||
@@ -248,7 +288,10 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onAnimeRemoved(AnimeRemovedEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onAnimeRemoved(
|
||||
AnimeRemovedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
animes: List.from(
|
||||
@@ -265,8 +308,11 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
// Update the database
|
||||
await GetIt.I.get<DatabaseService>().deleteAnime(event.id);
|
||||
}
|
||||
|
||||
Future<void> _onMangaRemoved(MangaRemovedEvent event, Emitter<AnimeListState> emit) async {
|
||||
|
||||
Future<void> _onMangaRemoved(
|
||||
MangaRemovedEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
mangas: List.from(
|
||||
@@ -279,12 +325,15 @@ class AnimeListBloc extends Bloc<AnimeListEvent, AnimeListState> {
|
||||
final cacheIndex = _animes.indexWhere((a) => a.id == event.id);
|
||||
assert(cacheIndex != -1, 'The manga must exist');
|
||||
_animes.removeAt(cacheIndex);
|
||||
|
||||
|
||||
// Update the database
|
||||
await GetIt.I.get<DatabaseService>().deleteManga(event.id);
|
||||
}
|
||||
|
||||
Future<void> _onButtonVisibilityToggled(AddButtonVisibilitySetEvent event, Emitter<AnimeListState> emit) async {
|
||||
Future<void> _onButtonVisibilityToggled(
|
||||
AddButtonVisibilitySetEvent event,
|
||||
Emitter<AnimeListState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
buttonVisibility: event.state,
|
||||
|
||||
@@ -18,7 +18,7 @@ class AnimeEpisodeDecrementedEvent extends AnimeListEvent {
|
||||
|
||||
class AnimeAddedEvent extends AnimeListEvent {
|
||||
AnimeAddedEvent(this.data);
|
||||
|
||||
|
||||
/// The anime to add.
|
||||
final AnimeTrackingData data;
|
||||
}
|
||||
@@ -57,7 +57,7 @@ class AnimeRemovedEvent extends AnimeListEvent {
|
||||
|
||||
class MangaAddedEvent extends AnimeListEvent {
|
||||
MangaAddedEvent(this.data);
|
||||
|
||||
|
||||
/// The manga to add.
|
||||
final MangaTrackingData data;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,10 @@ class AnimeSearchBloc extends Bloc<AnimeSearchEvent, AnimeSearchState> {
|
||||
on<ResultTappedEvent>(_onResultTapped);
|
||||
}
|
||||
|
||||
Future<void> _onRequested(AnimeSearchRequestedEvent event, Emitter<AnimeSearchState> emit) async {
|
||||
Future<void> _onRequested(
|
||||
AnimeSearchRequestedEvent event,
|
||||
Emitter<AnimeSearchState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
searchQuery: '',
|
||||
@@ -33,21 +36,27 @@ class AnimeSearchBloc extends Bloc<AnimeSearchEvent, AnimeSearchState> {
|
||||
);
|
||||
|
||||
GetIt.I.get<NavigationBloc>().add(
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(animeSearchRoute),
|
||||
),
|
||||
);
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(animeSearchRoute),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onQueryChanged(SearchQueryChangedEvent event, Emitter<AnimeSearchState> emit) async {
|
||||
Future<void> _onQueryChanged(
|
||||
SearchQueryChangedEvent event,
|
||||
Emitter<AnimeSearchState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
searchQuery: event.query,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onQuerySubmitted(SearchQuerySubmittedEvent event, Emitter<AnimeSearchState> emit) async {
|
||||
|
||||
Future<void> _onQuerySubmitted(
|
||||
SearchQuerySubmittedEvent event,
|
||||
Emitter<AnimeSearchState> emit,
|
||||
) async {
|
||||
if (state.searchQuery.isEmpty) return;
|
||||
|
||||
emit(
|
||||
@@ -65,13 +74,17 @@ class AnimeSearchBloc extends Bloc<AnimeSearchEvent, AnimeSearchState> {
|
||||
emit(
|
||||
state.copyWith(
|
||||
working: false,
|
||||
searchResults: result.map((Anime anime) => SearchResult(
|
||||
anime.title,
|
||||
anime.malId.toString(),
|
||||
anime.episodes,
|
||||
anime.imageUrl,
|
||||
anime.synopsis ?? '',
|
||||
),).toList(),
|
||||
searchResults: result
|
||||
.map(
|
||||
(Anime anime) => SearchResult(
|
||||
anime.title,
|
||||
anime.malId.toString(),
|
||||
anime.episodes,
|
||||
anime.imageUrl,
|
||||
anime.synopsis ?? '',
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
@@ -83,46 +96,53 @@ class AnimeSearchBloc extends Bloc<AnimeSearchEvent, AnimeSearchState> {
|
||||
emit(
|
||||
state.copyWith(
|
||||
working: false,
|
||||
searchResults: result.map((Manga manga) => SearchResult(
|
||||
manga.title,
|
||||
manga.malId.toString(),
|
||||
manga.chapters,
|
||||
manga.imageUrl,
|
||||
manga.synopsis ?? '',
|
||||
),).toList(),
|
||||
searchResults: result
|
||||
.map(
|
||||
(Manga manga) => SearchResult(
|
||||
manga.title,
|
||||
manga.malId.toString(),
|
||||
manga.chapters,
|
||||
manga.imageUrl,
|
||||
manga.synopsis ?? '',
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onResultTapped(ResultTappedEvent event, Emitter<AnimeSearchState> emit) async {
|
||||
Future<void> _onResultTapped(
|
||||
ResultTappedEvent event,
|
||||
Emitter<AnimeSearchState> emit,
|
||||
) async {
|
||||
GetIt.I.get<list.AnimeListBloc>().add(
|
||||
state.trackingType == TrackingMediumType.anime ?
|
||||
list.AnimeAddedEvent(
|
||||
AnimeTrackingData(
|
||||
event.result.id,
|
||||
MediumTrackingState.ongoing,
|
||||
event.result.title,
|
||||
0,
|
||||
event.result.total,
|
||||
event.result.thumbnailUrl,
|
||||
),
|
||||
) :
|
||||
list.MangaAddedEvent(
|
||||
MangaTrackingData(
|
||||
event.result.id,
|
||||
MediumTrackingState.ongoing,
|
||||
event.result.title,
|
||||
0,
|
||||
0,
|
||||
event.result.total,
|
||||
event.result.thumbnailUrl,
|
||||
),
|
||||
),
|
||||
);
|
||||
state.trackingType == TrackingMediumType.anime
|
||||
? list.AnimeAddedEvent(
|
||||
AnimeTrackingData(
|
||||
event.result.id,
|
||||
MediumTrackingState.ongoing,
|
||||
event.result.title,
|
||||
0,
|
||||
event.result.total,
|
||||
event.result.thumbnailUrl,
|
||||
),
|
||||
)
|
||||
: list.MangaAddedEvent(
|
||||
MangaTrackingData(
|
||||
event.result.id,
|
||||
MediumTrackingState.ongoing,
|
||||
event.result.title,
|
||||
0,
|
||||
0,
|
||||
event.result.total,
|
||||
event.result.thumbnailUrl,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
GetIt.I.get<NavigationBloc>().add(
|
||||
PoppedRouteEvent(),
|
||||
);
|
||||
PoppedRouteEvent(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class AnimeSearchRequestedEvent extends AnimeSearchEvent {
|
||||
/// Triggered when the search query is changed.
|
||||
class SearchQueryChangedEvent extends AnimeSearchEvent {
|
||||
SearchQueryChangedEvent(this.query);
|
||||
|
||||
|
||||
/// The current value of the query
|
||||
final String query;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,10 @@ class DetailsBloc extends Bloc<DetailsEvent, DetailsState> {
|
||||
on<ItemRemovedEvent>(_onItemRemoved);
|
||||
}
|
||||
|
||||
Future<void> _onAnimeRequested(AnimeDetailsRequestedEvent event, Emitter<DetailsState> emit) async {
|
||||
Future<void> _onAnimeRequested(
|
||||
AnimeDetailsRequestedEvent event,
|
||||
Emitter<DetailsState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
trackingType: TrackingMediumType.anime,
|
||||
@@ -30,13 +33,16 @@ class DetailsBloc extends Bloc<DetailsEvent, DetailsState> {
|
||||
);
|
||||
|
||||
GetIt.I.get<NavigationBloc>().add(
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(detailsRoute),
|
||||
),
|
||||
);
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(detailsRoute),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onMangaRequested(MangaDetailsRequestedEvent event, Emitter<DetailsState> emit) async {
|
||||
Future<void> _onMangaRequested(
|
||||
MangaDetailsRequestedEvent event,
|
||||
Emitter<DetailsState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
trackingType: TrackingMediumType.manga,
|
||||
@@ -45,13 +51,16 @@ class DetailsBloc extends Bloc<DetailsEvent, DetailsState> {
|
||||
);
|
||||
|
||||
GetIt.I.get<NavigationBloc>().add(
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(detailsRoute),
|
||||
),
|
||||
);
|
||||
PushedNamedEvent(
|
||||
const NavigationDestination(detailsRoute),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onDetailsUpdated(DetailsUpdatedEvent event, Emitter<DetailsState> emit) async {
|
||||
Future<void> _onDetailsUpdated(
|
||||
DetailsUpdatedEvent event,
|
||||
Emitter<DetailsState> emit,
|
||||
) async {
|
||||
if (state.trackingType == TrackingMediumType.anime) {
|
||||
emit(
|
||||
state.copyWith(
|
||||
@@ -59,11 +68,13 @@ class DetailsBloc extends Bloc<DetailsEvent, DetailsState> {
|
||||
),
|
||||
);
|
||||
|
||||
await GetIt.I.get<DatabaseService>().updateAnime(event.data as AnimeTrackingData);
|
||||
await GetIt.I
|
||||
.get<DatabaseService>()
|
||||
.updateAnime(event.data as AnimeTrackingData);
|
||||
|
||||
GetIt.I.get<AnimeListBloc>().add(
|
||||
AnimeUpdatedEvent(event.data as AnimeTrackingData),
|
||||
);
|
||||
AnimeUpdatedEvent(event.data as AnimeTrackingData),
|
||||
);
|
||||
} else {
|
||||
emit(
|
||||
state.copyWith(
|
||||
@@ -71,15 +82,20 @@ class DetailsBloc extends Bloc<DetailsEvent, DetailsState> {
|
||||
),
|
||||
);
|
||||
|
||||
await GetIt.I.get<DatabaseService>().updateManga(event.data as MangaTrackingData);
|
||||
await GetIt.I
|
||||
.get<DatabaseService>()
|
||||
.updateManga(event.data as MangaTrackingData);
|
||||
|
||||
GetIt.I.get<AnimeListBloc>().add(
|
||||
MangaUpdatedEvent(event.data as MangaTrackingData),
|
||||
);
|
||||
MangaUpdatedEvent(event.data as MangaTrackingData),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onItemRemoved(ItemRemovedEvent event, Emitter<DetailsState> emit) async {
|
||||
Future<void> _onItemRemoved(
|
||||
ItemRemovedEvent event,
|
||||
Emitter<DetailsState> emit,
|
||||
) async {
|
||||
emit(
|
||||
state.copyWith(
|
||||
data: null,
|
||||
|
||||
@@ -13,14 +13,20 @@ class NavigationBloc extends Bloc<NavigationEvent, NavigationState> {
|
||||
}
|
||||
final GlobalKey<NavigatorState> navigationKey;
|
||||
|
||||
Future<void> _onPushedNamed(PushedNamedEvent event, Emitter<NavigationState> emit) async {
|
||||
Future<void> _onPushedNamed(
|
||||
PushedNamedEvent event,
|
||||
Emitter<NavigationState> emit,
|
||||
) async {
|
||||
await navigationKey.currentState!.pushNamed(
|
||||
event.destination.path,
|
||||
arguments: event.destination.arguments,
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onPushedNamedAndRemoveUntil(PushedNamedAndRemoveUntilEvent event, Emitter<NavigationState> emit) async {
|
||||
Future<void> _onPushedNamedAndRemoveUntil(
|
||||
PushedNamedAndRemoveUntilEvent event,
|
||||
Emitter<NavigationState> emit,
|
||||
) async {
|
||||
await navigationKey.currentState!.pushNamedAndRemoveUntil(
|
||||
event.destination.path,
|
||||
event.predicate,
|
||||
@@ -28,14 +34,20 @@ class NavigationBloc extends Bloc<NavigationEvent, NavigationState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onPushedNamedReplaceEvent(PushedNamedReplaceEvent event, Emitter<NavigationState> emit) async {
|
||||
Future<void> _onPushedNamedReplaceEvent(
|
||||
PushedNamedReplaceEvent event,
|
||||
Emitter<NavigationState> emit,
|
||||
) async {
|
||||
await navigationKey.currentState!.pushReplacementNamed(
|
||||
event.destination.path,
|
||||
arguments: event.destination.arguments,
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onPoppedRoute(PoppedRouteEvent event, Emitter<NavigationState> emit) async {
|
||||
Future<void> _onPoppedRoute(
|
||||
PoppedRouteEvent event,
|
||||
Emitter<NavigationState> emit,
|
||||
) async {
|
||||
navigationKey.currentState!.pop();
|
||||
}
|
||||
|
||||
|
||||
@@ -2,11 +2,9 @@ part of 'navigation_bloc.dart';
|
||||
|
||||
class NavigationDestination {
|
||||
const NavigationDestination(
|
||||
this.path,
|
||||
{
|
||||
this.arguments,
|
||||
}
|
||||
);
|
||||
this.path, {
|
||||
this.arguments,
|
||||
});
|
||||
final String path;
|
||||
final Object? arguments;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user