Skip to content

Instantly share code, notes, and snippets.

@viveky259259
Created October 16, 2019 11:39
Show Gist options
  • Save viveky259259/622e3350b3a932e3bddfb58e0f4d2a44 to your computer and use it in GitHub Desktop.
Save viveky259259/622e3350b3a932e3bddfb58e0f4d2a44 to your computer and use it in GitHub Desktop.
BLoC Pattern for flutter -Part 3
import 'package:bloc/bloc.dart';
import 'package:flutter/material.dart';
import 'package:flutter_for_people/bloc/notes/note.event.dart';
import 'package:flutter_for_people/bloc/notes/note.model.dart';
import 'package:flutter_for_people/bloc/notes/note.state.dart';
import 'package:flutter_for_people/bloc/notes/note.storage.dart';
import 'addnote/notes.add.ui.dart';
class NoteBloc extends Bloc<NoteEvent, NoteState> {
@override
NoteState get initialState => InitialNoteState();
@override
Stream<NoteState> mapEventToState(NoteEvent event) async* {
if (event is GetNotesEvent) {
List<NoteModel> notes = noteStorage.notes;
yield FetchingNoteCompleteState(notes);
} else if (event is OpenAddNoteUiEvent) {
Navigator.push(
event.context, MaterialPageRoute(builder: (context) => NotesAddUi()));
} else if (event is AddNoteEvent) {
yield AddingNoteInProgressState();
noteStorage.notes.add(event.noteModel);
yield AddingNoteCompleteState();
List<NoteModel> notes = noteStorage.notes;
yield FetchingNoteCompleteState(notes);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment