doc_edit_bloc.dart 944 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. part 'doc_edit_bloc.freezed.dart';
  5. class DocEditBloc extends Bloc<DocEditEvent, DocEditState> {
  6. final IDoc iDocImpl;
  7. DocEditBloc(this.iDocImpl) : super(DocEditState.initial());
  8. @override
  9. Stream<DocEditState> mapEventToState(DocEditEvent event) async* {
  10. yield* event.map(
  11. initial: (e) async* {},
  12. close: (Close value) async* {
  13. iDocImpl.closeDoc();
  14. },
  15. );
  16. }
  17. }
  18. @freezed
  19. class DocEditEvent with _$DocEditEvent {
  20. const factory DocEditEvent.initial() = Initial;
  21. const factory DocEditEvent.close() = Close;
  22. }
  23. @freezed
  24. class DocEditState with _$DocEditState {
  25. const factory DocEditState({
  26. required bool isSaving,
  27. }) = _DocEditState;
  28. factory DocEditState.initial() => const DocEditState(
  29. isSaving: false,
  30. );
  31. }