implemented a comprehensive client-side demo mode triggered by a "demo@" username prefix, serving curated fixture data for all app modules

This commit is contained in:
2026-07-07 20:24:16 +02:00
parent 2668b111f1
commit 9b74c9fd81
45 changed files with 1409 additions and 43 deletions
@@ -1,15 +1,19 @@
import 'package:hydrated_bloc/hydrated_bloc.dart';
import '../../../../../api/demo/demo_mode.dart';
import 'grade_averages_event.dart';
import 'grade_averages_state.dart';
class GradeAveragesBloc
extends HydratedBloc<GradeAveragesEvent, GradeAveragesState> {
// Seeded with a realistic spread in demo mode (average 2.0); empty otherwise.
static const List<int> _demoGrades = [1, 2, 2, 2, 3, 2, 1, 3, 2, 2];
GradeAveragesBloc()
: super(
const GradeAveragesState(
GradeAveragesState(
gradingSystem: GradeAveragesGradingSystem.middleSchool,
grades: [],
grades: DemoMode.active ? _demoGrades : const [],
),
) {
on<GradingSystemChanged>((event, emit) {