home_bloc.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:app_flowy/home/domain/edit_context.dart';
  2. import 'package:app_flowy/home/domain/page_context.dart';
  3. import 'package:app_flowy/home/presentation/widgets/blank_page.dart';
  4. import 'package:flutter_bloc/flutter_bloc.dart';
  5. import 'package:freezed_annotation/freezed_annotation.dart';
  6. import 'package:dartz/dartz.dart';
  7. part 'home_event.dart';
  8. part 'home_state.dart';
  9. part 'home_bloc.freezed.dart';
  10. class HomeBloc extends Bloc<HomeEvent, HomeState> {
  11. HomeBloc() : super(HomeState.initial());
  12. @override
  13. Stream<HomeState> mapEventToState(
  14. HomeEvent event,
  15. ) async* {
  16. yield* event.map(
  17. setPage: (e) async* {
  18. yield state.copyWith(pageContext: e.context);
  19. },
  20. showLoading: (e) async* {
  21. yield state.copyWith(isLoading: e.isLoading);
  22. },
  23. setEditPannel: (e) async* {
  24. yield state.copyWith(editContext: some(e.editContext));
  25. },
  26. dismissEditPannel: (value) async* {
  27. yield state.copyWith(editContext: none());
  28. },
  29. showMenu: (e) async* {
  30. yield state.copyWith(showMenu: e.isShow);
  31. },
  32. );
  33. }
  34. @override
  35. Future<void> close() {
  36. return super.close();
  37. }
  38. }