import 'dart:async'; import 'package:aitrainer_app/bloc/development_diagram/development_diagram_bloc.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:aitrainer_app/repository/workout_tree_repository.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; part 'body_development_event.dart'; part 'body_development_state.dart'; enum DiagramDateFilterGroup { l3m, fm_lm, l3t, yearly } class BodyDevelopmentBloc extends Bloc { final WorkoutTreeRepository workoutTreeRepository; final ExerciseRepository exerciseRepository = ExerciseRepository(); List radarTicks = []; List radarFeatures = []; List> radarData = []; DiagramGroup group = DiagramGroup.sumMass; DiagramDateFilterGroup filter = DiagramDateFilterGroup.l3t; @override BodyDevelopmentBloc({required this.workoutTreeRepository}) : super(BodyDevelopmentInitial()) { on(_onLoad); on(_onDateFilterChange); on(_onGroupChange); } List defaultGraphColors = [ Colors.green, Colors.blue, Colors.red, Colors.orange, ]; Future getData() async { radarTicks = [20, 40, 60, 80, 100]; radarFeatures = ["Mell", "Bicepsz", "Tricepsz", "Hát", "Váll", "Core", "Comb", "Vádli"]; radarData = [ [80, 95, 45, 67, 83, 40, 56, 78], [82, 90, 56, 77, 82, 40, 50, 87], [86, 92, 58, 70, 80, 49, 52, 87], ]; } void _onLoad(BodyDevelopmentLoad event, Emitter emit) { emit(BodyDevelopmentLoading()); getData(); emit(BodyDevelopmentReady()); } void _onDateFilterChange(BodyDevelopmentChangeDate event, Emitter emit) { emit(BodyDevelopmentLoading()); this.filter = event.filter; getData(); emit(BodyDevelopmentReady()); } void _onGroupChange(BodyDevelopmentChangeGroup event, Emitter emit) { emit(BodyDevelopmentLoading()); this.group = event.group; getData(); emit(BodyDevelopmentReady()); } }