import 'package:bloc/bloc.dart'; import 'package:demo_hive/bloc/reminder_event.dart'; import 'package:demo_hive/bloc/reminder_state.dart'; import 'package:demo_hive/domain/entity/reminder.dart'; import 'package:demo_hive/domain/use_case/reminders_use_case.dart'; import 'package:flutter/cupertino.dart'; class ReminderBloc extends Bloc { final RemindersUseCase remindersUseCase; ReminderBloc({@required this.remindersUseCase}); List reminders = []; @override Stream mapEventToState(ReminderEvent event) async* { if (event is InitialEvent) { yield* _mapInitialEventToState(); } else if (event is AddTitleEvent) { yield* _mapAddTitleEventToState(event); } else if (event is GetValueTitleEvent) { yield* _mapGetValueTitleEventToState(event); } else if (event is RemoveEvent) { yield* _mapRemoveEventToState(); } else if (event is RemoveReminderEvent) { yield* _mapRemoveReminderEventState(); } else if (event is RemoveTitle) { yield* _mapRemoveTitleEventToState(event); } } Stream _mapInitialEventToState() async* { yield state.update(isLoading: true); reminders = await remindersUseCase.getFull(); yield state.update(list: reminders,isLoading: false); } Stream _mapAddTitleEventToState(AddTitleEvent event) async* { yield state.update(isLoading: true); ReminderEntity reminderEntity = ReminderEntity(title: event.title); reminders.add(reminderEntity); await remindersUseCase.addNote(reminderEntity); yield state.update(list: reminders,isLoading:false); } Stream _mapGetValueTitleEventToState( GetValueTitleEvent event) async* { yield state.update(isLoading: true); yield state.update(isEmpty: event.title.isEmpty,isLoading: false); } Stream _mapRemoveEventToState() async* { yield state.update(isLoading: true); yield state.update(isEmpty: true,isLoading: false); } Stream _mapRemoveReminderEventState() async* { yield state.update(isLoading: true); yield state.update(isEmpty: true,isLoading: false); } Stream _mapRemoveTitleEventToState(RemoveTitle event) async* { // yield LoadingState(); // //removeNotes(event.index); // yield state.update(list: listReminder); } @override // TODO: implement initialState ReminderState get initialState => ReminderState( isEmpty: true, list: [], ); }