Six on 11:47
This commit is contained in:
parent
bfd46aca31
commit
65217136a8
@ -5,7 +5,7 @@ extension AnimeDataDtoToModel on AnimeDataDto {
|
||||
CardData toDomain() => CardData(
|
||||
title ?? 'NOT',
|
||||
imageUrl: images?.jpg?.image ?? "NONE",
|
||||
score ?? 8,
|
||||
score: score ?? 0,
|
||||
description: synopsis == null ? "NONE" : synopsis!.split('\n').sublist(0, synopsis!.split('\n').length - 1).join('\n'),
|
||||
);
|
||||
}
|
@ -8,12 +8,12 @@ class MockRepository extends ApiInterface {
|
||||
return [
|
||||
const CardData(
|
||||
"First",
|
||||
5,
|
||||
score: 5,
|
||||
description: "SomeText",
|
||||
),
|
||||
const CardData(
|
||||
"Second",
|
||||
8,
|
||||
score: 8,
|
||||
icon: Icons.gamepad,
|
||||
description: "ManyText",
|
||||
imageUrl:
|
||||
@ -21,7 +21,7 @@ class MockRepository extends ApiInterface {
|
||||
),
|
||||
const CardData(
|
||||
"Third",
|
||||
9,
|
||||
score: 9,
|
||||
icon: Icons.offline_bolt_outlined,
|
||||
description: "Wow >_<",
|
||||
),
|
||||
|
@ -1,5 +1,8 @@
|
||||
import 'package:first_project/data/repositories/anime_repository.dart';
|
||||
import 'package:first_project/presentation/home_page/bloc/bloc.dart';
|
||||
import 'package:first_project/presentation/home_page/home_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
void main() {
|
||||
runApp(const MyApp());
|
||||
@ -16,8 +19,15 @@ class MyApp extends StatelessWidget {
|
||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||
useMaterial3: true,
|
||||
),
|
||||
home: const MyHomePage(title: 'KozyrevSS'),
|
||||
home: RepositoryProvider<AnimeRepository>(
|
||||
lazy: true,
|
||||
create: (_) => AnimeRepository(),
|
||||
child: BlocProvider<HomeBloc>(
|
||||
lazy: false,
|
||||
create: (context) => HomeBloc(context.read<AnimeRepository>()),
|
||||
child: const MyHomePage(title: 'Anime Nya >-<'),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
18
lib/presentation/home_page/bloc/bloc.dart
Normal file
18
lib/presentation/home_page/bloc/bloc.dart
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
import 'package:first_project/data/repositories/anime_repository.dart';
|
||||
import 'package:first_project/presentation/home_page/bloc/events.dart';
|
||||
import 'package:first_project/presentation/home_page/bloc/state.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
class HomeBloc extends Bloc<HomeEvent, HomeState> {
|
||||
final AnimeRepository repo;
|
||||
|
||||
HomeBloc(this.repo) : super(const HomeState()) {
|
||||
on<HomeLoadDataEvent>(_onLoadData);
|
||||
}
|
||||
|
||||
void _onLoadData(HomeLoadDataEvent event, Emitter<HomeState> emit) {
|
||||
emit(state.copyWith(data: repo.loadData()));
|
||||
}
|
||||
}
|
8
lib/presentation/home_page/bloc/events.dart
Normal file
8
lib/presentation/home_page/bloc/events.dart
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
abstract class HomeEvent {
|
||||
const HomeEvent();
|
||||
}
|
||||
|
||||
class HomeLoadDataEvent extends HomeEvent {
|
||||
const HomeLoadDataEvent();
|
||||
}
|
15
lib/presentation/home_page/bloc/state.dart
Normal file
15
lib/presentation/home_page/bloc/state.dart
Normal file
@ -0,0 +1,15 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:first_project/domain/models/card.dart';
|
||||
import 'package:first_project/presentation/home_page/home_page.dart';
|
||||
|
||||
class HomeState extends Equatable {
|
||||
final Future<List<CardData>?>? data;
|
||||
|
||||
const HomeState({this.data});
|
||||
|
||||
HomeState copyWith({Future<List<CardData>?>? data}) =>
|
||||
HomeState(data: data ?? this.data);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [data];
|
||||
}
|
@ -10,10 +10,10 @@ class CardData {
|
||||
final String imageUrl;
|
||||
|
||||
const CardData(
|
||||
this.text,
|
||||
this.score, {
|
||||
this.text, {
|
||||
required this.description,
|
||||
this.icon = Icons.add_call,
|
||||
this.score = 0,
|
||||
this.imageUrl =
|
||||
"https://i.pinimg.com/736x/5f/14/b3/5f14b3f14fcd157bc4dffa39085396cc.jpg",
|
||||
});
|
||||
|
40
pubspec.lock
40
pubspec.lock
@ -38,6 +38,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.11.0"
|
||||
bloc:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: bloc
|
||||
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.4"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -198,6 +206,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
equatable:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: equatable
|
||||
sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -227,6 +243,14 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_bloc:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_bloc
|
||||
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.6"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
@ -392,6 +416,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: nested
|
||||
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
package_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -424,6 +456,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
provider:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: provider
|
||||
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.2"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -39,6 +39,9 @@ dependencies:
|
||||
json_annotation: ^4.8.1
|
||||
dio: ^5.4.2+1
|
||||
pretty_dio_logger: ^1.3.1
|
||||
#BLoC
|
||||
equatable: ^2.0.5
|
||||
flutter_bloc: ^8.1.5
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
Loading…
Reference in New Issue
Block a user