wip: bloc for holidays
This commit is contained in:
36
lib/state/app/modules/holidays/bloc/holidays_bloc.dart
Normal file
36
lib/state/app/modules/holidays/bloc/holidays_bloc.dart
Normal file
@ -0,0 +1,36 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import '../../../infrastructure/utilityWidgets/loadableHydratedBloc/loadable_hydrated_bloc.dart';
|
||||
import '../../../infrastructure/utilityWidgets/loadableHydratedBloc/loadable_hydrated_bloc_event.dart';
|
||||
import '../repository/holidays_repository.dart';
|
||||
import 'holidays_event.dart';
|
||||
import 'holidays_state.dart';
|
||||
|
||||
class HolidaysBloc extends LoadableHydratedBloc<HolidaysEvent, HolidaysState, HolidaysRepository> {
|
||||
HolidaysBloc() {
|
||||
on<SetPastHolidaysVisible>((event, emit) {
|
||||
log('set pastholidays: ${event.shouldBeVisible.toString()}');
|
||||
add(Emit((state) => state.copyWith(showPastHolidays: state.showPastHolidays)));
|
||||
});
|
||||
|
||||
on<DisclaimerDismissed>((event, emit) => add(
|
||||
Emit((state) => state.copyWith(showDisclaimer: false))
|
||||
));
|
||||
}
|
||||
|
||||
bool showPastHolidays() => innerState?.showPastHolidays ?? false;
|
||||
|
||||
@override
|
||||
fromNothing() => const HolidaysState(showPastHolidays: false, holidays: [], showDisclaimer: true);
|
||||
@override
|
||||
fromStorage(Map<String, dynamic> json) => HolidaysState.fromJson(json);
|
||||
@override
|
||||
Future<void> gatherData() async {
|
||||
var holidays = await repo.getHolidays();
|
||||
add(DataGathered((state) => state.copyWith(holidays: holidays)));
|
||||
}
|
||||
@override
|
||||
repository() => HolidaysRepository();
|
||||
@override
|
||||
Map<String, dynamic>? toStorage(state) => state.toJson();
|
||||
}
|
Reference in New Issue
Block a user