based_of_eng_game 0.3.8 copy "based_of_eng_game: ^0.3.8" to clipboard
based_of_eng_game: ^0.3.8 copied to clipboard

based of eng game

example/lib/main.dart

import 'package:based_of_eng_game/based_of_eng_game.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'injection/injection_container.dart' as di;

import 'bloc/contact_lesson_bloc.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await di.init();

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
          useMaterial3: true,
        ),
        home: ScreenUtilInit(
            designSize: const Size(360, 690),
            minTextAdapt: true,
            splitScreenMode: true,
            builder: (_, child) {
              return BlocProvider<ContactLessonBloc>(
                  create: (_) => di.sl<ContactLessonBloc>()
                    // ..add(GetContactLessonRequest(lessonId: 1708, gameId: 5)),
                    ..add(GetContactLessonRequest(lessonId: 5, gameId: 1708)),
                  // ..add(GetContactLessonRequest(lessonId: 184, gameId: 2342)),
                  // ..add(GetContactLessonRequest(lessonId: 5, gameId: 1708)),
                  child: BlocConsumer<ContactLessonBloc, ContactLessonState>(
                    listener: (context, state) {
                      if (state is GetContactErrorInitial) {
                        debugPrint('state.message:${state.message}');
                        // final snackBar = SnackBar(
                        //   content: Text(state.message),
                        // );
                        // ScaffoldMessenger.of(context).showSnackBar(snackBar);
                      } else if (state is LogOutLoadingState) {
                        Navigator.of(context).pop();
                      } else if (state is GetContactInitial) {
                        // try {
                        MainDataOfChapters? dataType = state.getMainContactData(
                          index: 0,
                        );

                        debugPrint('dataType:$dataType');
                        // } catch (e) {
                        //  debugPrint('error data type'+e.toString());
                        //   context
                        //       .read<ContactLessonBloc>()
                        //       .add(ThisTypeNotSupportedRequest());
                        // }
                      }
                    },
                    builder: (context, stateOfGameData) {
                      if (stateOfGameData is GetContactInitial) {
                        return MainScreenOfGames(
                          stateOfGameData: stateOfGameData.data,
                          dataOfBasesGame: stateOfGameData.getMainContactData(
                            index: 0,
                          ),
                          actionOfCompleteGame: (int countOfStars) {
                            // List<int> listOfIds = stateOfGameData.data;
                            List<int> listOfIds = stateOfGameData.data
                                .map((game) => game.id ?? 0)
                                .toList();
                            debugPrint(
                                '#########################################');
                            debugPrint(
                                'the stars send: $listOfIds , $countOfStars');
                            debugPrint(
                                '#########################################');
                          },
                          showTheEditedGames: false,
                          backButton: () {
                            debugPrint(
                                'backButton#########################################');

                            Navigator.of(context).pop();
                            Navigator.of(context).pop();
                          },
                        );
                      } else {
                        return const CircularProgressIndicator();
                      }
                    },
                  ));
            }));
  }
}