Files
Remever/lib/screens/training/cubit/training_cubit.dart

56 lines
1.3 KiB
Dart

import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:remever/database/database.dart';
import 'package:remever/inject.dart';
import 'package:remever/models/training_dto.dart';
import 'package:remever/services/training/training_interface.dart';
part 'training_state.dart';
part 'training_cubit.freezed.dart';
class TrainingCubit extends Cubit<TrainingState> {
TrainingCubit() : super(TrainingState.loading()) {
init();
}
Future<void> toLoading() async {
emit(TrainingState.loading());
}
Future<void> toEmptyState() async {
emit(TrainingState.empty());
}
Future<void> toDataState() async {
emit(TrainingState.data([]));
}
Future<void> toResultState() async {
emit(TrainingState.result());
}
Future<void> init() async {
final List<Ticket> data = await getIt<TrainingInterface>().getTraining();
if (data.isEmpty) {
emit(TrainingState.empty());
return;
}
List<TrainingDto> dto = [];
for (final ticket in data) {
dto.add(
TrainingDto(
ticket: ticket,
collection: await getIt<AppDatabase>().collectionsDao
.getCollectionById(ticket.collectionId),
),
);
}
emit(TrainingState.data(dto));
}
}