dart format
This commit is contained in:
@@ -3,17 +3,23 @@ import 'package:hydrated_bloc/hydrated_bloc.dart';
|
||||
import 'grade_averages_event.dart';
|
||||
import 'grade_averages_state.dart';
|
||||
|
||||
class GradeAveragesBloc extends HydratedBloc<GradeAveragesEvent, GradeAveragesState> {
|
||||
GradeAveragesBloc() : super(const GradeAveragesState(gradingSystem: GradeAveragesGradingSystem.middleSchool, grades: [])) {
|
||||
|
||||
class GradeAveragesBloc
|
||||
extends HydratedBloc<GradeAveragesEvent, GradeAveragesState> {
|
||||
GradeAveragesBloc()
|
||||
: super(
|
||||
const GradeAveragesState(
|
||||
gradingSystem: GradeAveragesGradingSystem.middleSchool,
|
||||
grades: [],
|
||||
),
|
||||
) {
|
||||
on<GradingSystemChanged>((event, emit) {
|
||||
add(ResetAll());
|
||||
emit(
|
||||
state.copyWith(
|
||||
gradingSystem: event.isMiddleSchool
|
||||
? GradeAveragesGradingSystem.middleSchool
|
||||
: GradeAveragesGradingSystem.highSchool
|
||||
)
|
||||
? GradeAveragesGradingSystem.middleSchool
|
||||
: GradeAveragesGradingSystem.highSchool,
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
@@ -22,7 +28,12 @@ class GradeAveragesBloc extends HydratedBloc<GradeAveragesEvent, GradeAveragesSt
|
||||
});
|
||||
|
||||
on<ResetGrade>((event, emit) {
|
||||
emit(state.copyWith(grades: [...state.grades]..removeWhere((grade) => grade == event.grade)));
|
||||
emit(
|
||||
state.copyWith(
|
||||
grades: [...state.grades]
|
||||
..removeWhere((grade) => grade == event.grade),
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
on<IncrementGrade>((event, emit) {
|
||||
@@ -30,20 +41,26 @@ class GradeAveragesBloc extends HydratedBloc<GradeAveragesEvent, GradeAveragesSt
|
||||
});
|
||||
|
||||
on<DecrementGrade>((event, emit) {
|
||||
emit(state.copyWith(grades: List.from(state.grades)..remove(event.grade)));
|
||||
emit(
|
||||
state.copyWith(grades: List.from(state.grades)..remove(event.grade)),
|
||||
);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
double average() => state.grades.isEmpty ? 0 : state.grades.reduce((a, b) => a + b) / state.grades.length;
|
||||
bool isMiddleSchool() => state.gradingSystem == GradeAveragesGradingSystem.middleSchool;
|
||||
double average() => state.grades.isEmpty
|
||||
? 0
|
||||
: state.grades.reduce((a, b) => a + b) / state.grades.length;
|
||||
bool isMiddleSchool() =>
|
||||
state.gradingSystem == GradeAveragesGradingSystem.middleSchool;
|
||||
bool canDecrementOrDelete(int grade) => state.grades.contains(grade);
|
||||
int countOfGrade(int grade) => state.grades.where((g) => g == grade).length;
|
||||
int gradesInGradingSystem() => state.gradingSystem == GradeAveragesGradingSystem.middleSchool ? 6 : 16;
|
||||
int gradesInGradingSystem() =>
|
||||
state.gradingSystem == GradeAveragesGradingSystem.middleSchool ? 6 : 16;
|
||||
int getGradeFromIndex(int index) => isMiddleSchool() ? index + 1 : 15 - index;
|
||||
|
||||
@override
|
||||
GradeAveragesState? fromJson(Map<String, dynamic> json) => GradeAveragesState.fromJson(json);
|
||||
GradeAveragesState? fromJson(Map<String, dynamic> json) =>
|
||||
GradeAveragesState.fromJson(json);
|
||||
@override
|
||||
Map<String, dynamic>? toJson(GradeAveragesState state) => state.toJson();
|
||||
}
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
|
||||
sealed class GradeAveragesEvent {}
|
||||
|
||||
final class GradingSystemChanged extends GradeAveragesEvent {
|
||||
final bool isMiddleSchool;
|
||||
GradingSystemChanged(this.isMiddleSchool);
|
||||
}
|
||||
|
||||
final class ResetAll extends GradeAveragesEvent {}
|
||||
|
||||
final class ResetGrade extends GradeAveragesEvent {
|
||||
final int grade;
|
||||
ResetGrade(this.grade);
|
||||
}
|
||||
|
||||
final class IncrementGrade extends GradeAveragesEvent {
|
||||
final int grade;
|
||||
IncrementGrade(this.grade);
|
||||
}
|
||||
|
||||
final class DecrementGrade extends GradeAveragesEvent {
|
||||
final int grade;
|
||||
DecrementGrade(this.grade);
|
||||
|
||||
@@ -10,10 +10,8 @@ abstract class GradeAveragesState with _$GradeAveragesState {
|
||||
required List<int> grades,
|
||||
}) = _GradeAveragesState;
|
||||
|
||||
factory GradeAveragesState.fromJson(Map<String, dynamic> json) => _$GradeAveragesStateFromJson(json);
|
||||
factory GradeAveragesState.fromJson(Map<String, dynamic> json) =>
|
||||
_$GradeAveragesStateFromJson(json);
|
||||
}
|
||||
|
||||
enum GradeAveragesGradingSystem {
|
||||
highSchool,
|
||||
middleSchool,
|
||||
}
|
||||
enum GradeAveragesGradingSystem { highSchool, middleSchool }
|
||||
|
||||
Reference in New Issue
Block a user