feature(training): отбражение данных для тренировки
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
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.data());
|
||||
TrainingCubit() : super(TrainingState.loading()) {
|
||||
init();
|
||||
}
|
||||
|
||||
Future<void> toLoading() async {
|
||||
emit(TrainingState.loading());
|
||||
@@ -16,10 +22,34 @@ class TrainingCubit extends Cubit<TrainingState> {
|
||||
}
|
||||
|
||||
Future<void> toDataState() async {
|
||||
emit(TrainingState.data());
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user