34 lines
1.0 KiB
Dart
34 lines
1.0 KiB
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:equatable/equatable.dart';
|
|
import 'package:flux/features/company/data/company_repository.dart';
|
|
import 'package:flux/features/company/models/company_model.dart';
|
|
import 'package:get_it/get_it.dart';
|
|
|
|
part 'company_events.dart';
|
|
part 'company_state.dart';
|
|
|
|
class CompanyBloc extends Bloc<CompanyEvent, CompanyState> {
|
|
final CompanyRepository _repository = GetIt.I<CompanyRepository>();
|
|
CompanyBloc() : super(const CompanyState(status: CompanyStatus.initial)) {
|
|
on<CreateCompanyRequested>((event, emit) async {
|
|
emit(const CompanyState(status: CompanyStatus.loading));
|
|
try {
|
|
final createdCompany = await _repository.createCompany(event.company);
|
|
emit(
|
|
state.copyWith(
|
|
status: CompanyStatus.success,
|
|
company: createdCompany,
|
|
),
|
|
);
|
|
} catch (e) {
|
|
emit(
|
|
state.copyWith(
|
|
status: CompanyStatus.failure,
|
|
errorMessage: e.toString(),
|
|
),
|
|
);
|
|
}
|
|
});
|
|
}
|
|
}
|