FeedPostFormBloc constructor

FeedPostFormBloc(
  1. AppModel app,
  2. PostListPagedBloc postListPagedBloc,
  3. String memberId,
  4. String feedId,
  5. LoggedIn accessState,
)

Implementation

FeedPostFormBloc(this.app, this.postListPagedBloc, this.memberId, this.feedId,
    this.accessState)
    : super(FeedPostFormUninitialized()) {
  if (state is FeedPostFormUninitialized) {
    //final currentState = state as FeedPostFormUninitialized;
  }
  on<InitialiseNewFeedPostFormEvent>((event, emit) async {
    post = null;
    emit(await _initialiseNew(
        event.postAccessibleByGroup, event.postAccessibleByMembers));
  });
  on<InitialiseUpdateFeedPostFormEvent>((event, emit) async {
    post = event.originalPost;
    emit(await _initialiseUpdate(event));
  });

  on<SubmitPost>((event, emit) async {
    if (state is FeedPostFormInitialized) {
      final currentState = state as FeedPostFormInitialized;
      emit(await _submit(currentState.postModelDetails));
    }
  });
  on<ChangedFeedPostPrivilege>((event, emit) async {
    if (state is FeedPostFormInitialized) {
      final currentState = state as FeedPostFormInitialized;
      var newValue = currentState.postModelDetails.copyWith(
          postAccessibleByGroup: event.postAccessibleByGroup,
          postAccessibleByMembers: event.postAccessibleByMembers);
      emit(SubmittableFeedPostForm(postModelDetails: newValue));
    }
  });
  on<UploadingMedium>((event, emit) async {
    if (state is FeedPostFormInitialized) {
      final currentState = state as FeedPostFormInitialized;
      emit(SubmittableFeedPostFormWithMediumUploading(
          postModelDetails: currentState.postModelDetails,
          progress: event.progress));
    }
  });
  on<ChangedFeedPostDescription>((event, emit) async {
    if (state is FeedPostFormInitialized) {
      final currentState = state as FeedPostFormInitialized;
      var newValue =
          currentState.postModelDetails.copyWith(description: event.value);
      emit(SubmittableFeedPostForm(postModelDetails: newValue));
    }
  });

  on<ChangedMedia>((event, emit) {
    if (state is FeedPostFormInitialized) {
      final currentState = state as FeedPostFormInitialized;
      var newValue = currentState.postModelDetails
          .copyWith(memberMedia: event.memberMedia);
      emit(SubmittableFeedPostForm(postModelDetails: newValue));
    }
  });
}