// Copyright (C) 2022 WYATT GROUP // Please see the AUTHORS file for details. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import 'package:crud_bloc_example/advanced_cubit_view.dart'; import 'package:crud_bloc_example/basic_cubit_view.dart'; import 'package:crud_bloc_example/user_entity.dart'; import 'package:crud_bloc_example/user_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:wyatt_crud_bloc/wyatt_crud_bloc.dart'; class MyApp extends StatelessWidget { const MyApp({required this.crudDataSource, Key? key}) : super(key: key); final CrudDataSource crudDataSource; // This widget is the root of your application. @override Widget build(BuildContext context) { final CrudRepository userRepository = CrudRepositoryImpl( crudDataSource: crudDataSource, modelMapper: ModelMapper( fromJson: (json) => UserModel.fromJson(json ?? {}), toJson: (user) => UserModel( id: user.id, name: user.name, email: user.email, phone: user.phone, ).toJson(), ), ); return RepositoryProvider>.value( value: userRepository, child: MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(), ), ); } } class MyHomePage extends StatelessWidget { const MyHomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Flutter Demo Home Page'), ), body: Column( children: [ ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => const BasicCubitView(), ), ); }, child: const Text('Basic example'), ), const SizedBox(height: 20), ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => const AdvancedCubitView(), ), ); }, child: const Text('Advanced example'), ), ], ), ); } }