view_edit_bloc.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
  4. import 'package:flutter_bloc/flutter_bloc.dart';
  5. import 'package:freezed_annotation/freezed_annotation.dart';
  6. import 'package:app_flowy/workspace/domain/i_view.dart';
  7. part 'view_edit_bloc.freezed.dart';
  8. class ViewEditBloc extends Bloc<ViewEditEvent, ViewEditState> {
  9. final IView iViewImpl;
  10. ViewEditBloc({
  11. required this.iViewImpl,
  12. }) : super(ViewEditState.initial());
  13. @override
  14. Stream<ViewEditState> mapEventToState(ViewEditEvent event) async* {
  15. yield* event.map(initial: (_) async* {
  16. yield state;
  17. });
  18. }
  19. }
  20. @freezed
  21. class ViewEditEvent with _$ViewEditEvent {
  22. const factory ViewEditEvent.initial() = Initial;
  23. }
  24. @freezed
  25. class ViewEditState with _$ViewEditState {
  26. const factory ViewEditState({
  27. required bool isLoading,
  28. required Option<View> view,
  29. required Either<Unit, WorkspaceError> successOrFailure,
  30. }) = _ViewState;
  31. factory ViewEditState.initial() => ViewEditState(
  32. isLoading: false,
  33. view: none(),
  34. successOrFailure: left(unit),
  35. );
  36. }