doc_bloc.dart 984 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:app_flowy/workspace/domain/i_doc.dart';
  2. import 'package:freezed_annotation/freezed_annotation.dart';
  3. import 'package:flutter_bloc/flutter_bloc.dart';
  4. import 'package:dartz/dartz.dart';
  5. part 'doc_bloc.freezed.dart';
  6. class DocBloc extends Bloc<DocEvent, DocState> {
  7. final IDoc iDocImpl;
  8. DocBloc(this.iDocImpl) : super(DocState.initial());
  9. @override
  10. Stream<DocState> mapEventToState(DocEvent event) async* {
  11. yield* event.map(
  12. initial: (e) async* {},
  13. save: (Save value) async* {},
  14. close: (Close value) async* {},
  15. );
  16. }
  17. }
  18. @freezed
  19. abstract class DocEvent with _$DocEvent {
  20. const factory DocEvent.initial() = Initial;
  21. const factory DocEvent.save(String jsonStr) = Save;
  22. const factory DocEvent.close() = Close;
  23. }
  24. @freezed
  25. abstract class DocState implements _$DocState {
  26. const factory DocState({
  27. required bool isSaving,
  28. }) = _DocState;
  29. factory DocState.initial() => const DocState(
  30. isSaving: false,
  31. );
  32. }