based_of_game 0.5.7+0 copy "based_of_game: ^0.5.7+0" to clipboard
based_of_game: ^0.5.7+0 copied to clipboard

based of game

example/lib/main.dart

import 'package:based_of_game/based_of_game.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

import 'bloc/contact_lesson_bloc.dart';
import 'injection/injection_container.dart' as di;

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: 400, gameId: 4610)),
                  // ..add(GetContactLessonRequest(lessonId: 399, gameId: 4583)),
                  child: BlocConsumer<ContactLessonBloc, ContactLessonState>(
                    listener: (context, state) {
                      if (state is GetContactErrorInitial) {
                        print('state.message:${state.message}');
                      } else if (state is LogOutLoadingState) {
                        Navigator.of(context).pop();
                      } else if (state is GetContactInitial) {
                        MainDataOfChapters? dataType = state.getMainContactData(
                          index: 0,
                        );

                        debugPrint('dataType:$dataType');
                      }
                    },
                    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();
                      }
                    },
                  ));
            }));
  }
}