1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import 'package:flutter_bloc/flutter_bloc.dart';
- import 'package:freezed_annotation/freezed_annotation.dart';
- import 'dart:async';
- import 'data.dart';
- import 'row_service.dart';
- part 'row_bloc.freezed.dart';
- class RowBloc extends Bloc<RowEvent, RowState> {
- final RowService service;
- RowBloc({required this.service}) : super(RowState.initial(service.rowData)) {
- on<RowEvent>(
- (event, emit) async {
- await event.map(
- initial: (_InitialRow value) async {},
- createRow: (_CreateRow value) {
- service.createRow();
- },
- activeRow: (_ActiveRow value) {
- emit(state.copyWith(active: true));
- },
- disactiveRow: (_DisactiveRow value) {
- emit(state.copyWith(active: false));
- },
- );
- },
- );
- }
- @override
- Future<void> close() async {
- return super.close();
- }
- }
- @freezed
- abstract class RowEvent with _$RowEvent {
- const factory RowEvent.initial() = _InitialRow;
- const factory RowEvent.createRow() = _CreateRow;
- const factory RowEvent.activeRow() = _ActiveRow;
- const factory RowEvent.disactiveRow() = _DisactiveRow;
- }
- @freezed
- abstract class RowState with _$RowState {
- const factory RowState({
- required GridRowData data,
- required bool active,
- }) = _RowState;
- factory RowState.initial(GridRowData data) => RowState(data: data, active: false);
- }
|