column_bloc.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:flowy_sdk/protobuf/flowy-grid-data-model/grid.pb.dart';
  2. import 'package:flutter_bloc/flutter_bloc.dart';
  3. import 'package:freezed_annotation/freezed_annotation.dart';
  4. import 'dart:async';
  5. import 'column_service.dart';
  6. import 'data.dart';
  7. part 'column_bloc.freezed.dart';
  8. class ColumnBloc extends Bloc<ColumnEvent, ColumnState> {
  9. final ColumnService service;
  10. final GridColumnData data;
  11. ColumnBloc({required this.data, required this.service}) : super(ColumnState.initial(data.fields)) {
  12. on<ColumnEvent>(
  13. (event, emit) async {
  14. await event.map(
  15. initial: (_InitialColumn value) async {},
  16. createColumn: (_CreateColumn value) {},
  17. );
  18. },
  19. );
  20. }
  21. @override
  22. Future<void> close() async {
  23. return super.close();
  24. }
  25. }
  26. @freezed
  27. abstract class ColumnEvent with _$ColumnEvent {
  28. const factory ColumnEvent.initial() = _InitialColumn;
  29. const factory ColumnEvent.createColumn() = _CreateColumn;
  30. }
  31. @freezed
  32. abstract class ColumnState with _$ColumnState {
  33. const factory ColumnState({required List<Field> fields}) = _ColumnState;
  34. factory ColumnState.initial(List<Field> fields) => ColumnState(fields: fields);
  35. }