поправил файлики
This commit is contained in:
parent
88711e8f27
commit
97cad27d29
@ -1,7 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import '../../presentation/home_page/bloc/hero_detail_bloc.dart';
|
||||
import '../../presentation/heroDetail/hero_detail_block.dart';
|
||||
import '../../data/repositories/hero_repository.dart';
|
||||
import '../../presentation/heroDetail/hero_detail_state.dart';
|
||||
import '../../presentation/heroDetail/hero_detail_events.dart';
|
||||
|
||||
class HeroDetailScreen extends StatelessWidget {
|
||||
final int heroId;
|
||||
|
@ -3,9 +3,13 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../../Components/locale/l10n/app_locale.dart';
|
||||
import '../../main.dart';
|
||||
import '../../presentation/home_page/bloc/hero_list_bloc.dart';
|
||||
import '../../widgets/hero_card.dart';
|
||||
import '../../presentation/home_page/bloc/hero_search_bloc.dart';
|
||||
import '../../presentation/heroSearch/hero_search_block.dart';
|
||||
import '../../presentation/heroSearch/hero_search_state.dart';
|
||||
import '../../presentation/heroSearch/hero_search_event.dart';
|
||||
import '../../presentation/home_page/bloc/block.dart';
|
||||
import '../../presentation/home_page/bloc/events.dart';
|
||||
import '../../presentation/home_page/bloc/state.dart';
|
||||
|
||||
class HeroListScreen extends StatelessWidget {
|
||||
const HeroListScreen({Key? key}) : super(key: key);
|
||||
|
@ -3,10 +3,13 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'data/repositories/hero_repository.dart';
|
||||
import 'services/api_service.dart';
|
||||
import 'presentation/home_page/bloc/hero_list_bloc.dart';
|
||||
import 'presentation/home_page/bloc/hero_search_bloc.dart';
|
||||
import 'components/screens/hero_list_screen.dart';
|
||||
import 'Components/locale/l10n/app_locale.dart';
|
||||
import 'presentation/home_page/bloc/block.dart';
|
||||
import 'presentation/home_page/bloc/events.dart';
|
||||
import 'presentation/home_page/bloc/state.dart';
|
||||
import '../../presentation/heroSearch/hero_search_block.dart';
|
||||
|
||||
|
||||
void main() {
|
||||
final apiService = ApiService(baseUrl: 'https://assets.deadlock-api.com');
|
||||
|
23
lib/presentation/heroDetail/hero_detail_block.dart
Normal file
23
lib/presentation/heroDetail/hero_detail_block.dart
Normal file
@ -0,0 +1,23 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../data/dtos/hero_dto.dart';
|
||||
import '../../data/repositories/hero_repository.dart';
|
||||
import 'hero_detail_state.dart';
|
||||
import 'hero_detail_events.dart';
|
||||
|
||||
// BLoC
|
||||
class HeroDetailBloc extends Bloc<HeroDetailEvent, HeroDetailState> {
|
||||
final HeroRepository heroRepository;
|
||||
|
||||
HeroDetailBloc(this.heroRepository) : super(HeroDetailInitial()) {
|
||||
on<FetchHeroDetails>((event, emit) async {
|
||||
emit(HeroDetailLoading());
|
||||
try {
|
||||
final hero = await heroRepository.getHeroDetails(event.heroId);
|
||||
emit(HeroDetailLoaded(hero));
|
||||
} catch (e) {
|
||||
emit(HeroDetailError(e.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
21
lib/presentation/heroDetail/hero_detail_events.dart
Normal file
21
lib/presentation/heroDetail/hero_detail_events.dart
Normal file
@ -0,0 +1,21 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../data/dtos/hero_dto.dart';
|
||||
import '../../data/repositories/hero_repository.dart';
|
||||
|
||||
// Events
|
||||
abstract class HeroDetailEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class FetchHeroDetails extends HeroDetailEvent {
|
||||
final int heroId;
|
||||
|
||||
FetchHeroDetails(this.heroId);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroId];
|
||||
}
|
||||
|
||||
|
31
lib/presentation/heroDetail/hero_detail_state.dart
Normal file
31
lib/presentation/heroDetail/hero_detail_state.dart
Normal file
@ -0,0 +1,31 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../data/dtos/hero_dto.dart';
|
||||
import '../../data/repositories/hero_repository.dart';
|
||||
|
||||
abstract class HeroDetailState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroDetailInitial extends HeroDetailState {}
|
||||
|
||||
class HeroDetailLoading extends HeroDetailState {}
|
||||
|
||||
class HeroDetailLoaded extends HeroDetailState {
|
||||
final HeroDto hero;
|
||||
|
||||
HeroDetailLoaded(this.hero);
|
||||
|
||||
@override
|
||||
List<Object> get props => [hero];
|
||||
}
|
||||
|
||||
class HeroDetailError extends HeroDetailState {
|
||||
final String message;
|
||||
|
||||
HeroDetailError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
@ -2,49 +2,8 @@ import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
// Events
|
||||
abstract class HeroSearchEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class SearchHeroes extends HeroSearchEvent {
|
||||
final String query;
|
||||
|
||||
SearchHeroes(this.query);
|
||||
|
||||
@override
|
||||
List<Object> get props => [query];
|
||||
}
|
||||
|
||||
// States
|
||||
abstract class HeroSearchState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroSearchInitial extends HeroSearchState {}
|
||||
|
||||
class HeroSearchLoading extends HeroSearchState {}
|
||||
|
||||
class HeroSearchLoaded extends HeroSearchState {
|
||||
final List<HeroDto> heroes;
|
||||
|
||||
HeroSearchLoaded(this.heroes);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroes];
|
||||
}
|
||||
|
||||
class HeroSearchError extends HeroSearchState {
|
||||
final String message;
|
||||
|
||||
HeroSearchError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
import 'hero_search_event.dart';
|
||||
import 'hero_search_state.dart';
|
||||
|
||||
// BLoC
|
||||
class HeroSearchBloc extends Bloc<HeroSearchEvent, HeroSearchState> {
|
18
lib/presentation/heroSearch/hero_search_event.dart
Normal file
18
lib/presentation/heroSearch/hero_search_event.dart
Normal file
@ -0,0 +1,18 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
abstract class HeroSearchEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class SearchHeroes extends HeroSearchEvent {
|
||||
final String query;
|
||||
|
||||
SearchHeroes(this.query);
|
||||
|
||||
@override
|
||||
List<Object> get props => [query];
|
||||
}
|
32
lib/presentation/heroSearch/hero_search_state.dart
Normal file
32
lib/presentation/heroSearch/hero_search_state.dart
Normal file
@ -0,0 +1,32 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
// States
|
||||
abstract class HeroSearchState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroSearchInitial extends HeroSearchState {}
|
||||
|
||||
class HeroSearchLoading extends HeroSearchState {}
|
||||
|
||||
class HeroSearchLoaded extends HeroSearchState {
|
||||
final List<HeroDto> heroes;
|
||||
|
||||
HeroSearchLoaded(this.heroes);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroes];
|
||||
}
|
||||
|
||||
class HeroSearchError extends HeroSearchState {
|
||||
final String message;
|
||||
|
||||
HeroSearchError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
@ -2,42 +2,8 @@ import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
// Events
|
||||
abstract class HeroListEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class FetchHeroes extends HeroListEvent {}
|
||||
|
||||
// States
|
||||
abstract class HeroListState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroListInitial extends HeroListState {}
|
||||
|
||||
class HeroListLoading extends HeroListState {}
|
||||
|
||||
class HeroListLoaded extends HeroListState {
|
||||
final List<HeroDto> heroes;
|
||||
|
||||
HeroListLoaded(this.heroes);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroes];
|
||||
}
|
||||
|
||||
class HeroListError extends HeroListState {
|
||||
final String message;
|
||||
|
||||
HeroListError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
import 'events.dart';
|
||||
import 'state.dart';
|
||||
|
||||
// BLoC
|
||||
class HeroListBloc extends Bloc<HeroListEvent, HeroListState> {
|
14
lib/presentation/home_page/bloc/events.dart
Normal file
14
lib/presentation/home_page/bloc/events.dart
Normal file
@ -0,0 +1,14 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
// Events
|
||||
abstract class HeroListEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class FetchHeroes extends HeroListEvent {}
|
||||
|
||||
|
@ -1,64 +0,0 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
// Events
|
||||
abstract class HeroDetailEvent extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class FetchHeroDetails extends HeroDetailEvent {
|
||||
final int heroId;
|
||||
|
||||
FetchHeroDetails(this.heroId);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroId];
|
||||
}
|
||||
|
||||
// States
|
||||
abstract class HeroDetailState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroDetailInitial extends HeroDetailState {}
|
||||
|
||||
class HeroDetailLoading extends HeroDetailState {}
|
||||
|
||||
class HeroDetailLoaded extends HeroDetailState {
|
||||
final HeroDto hero;
|
||||
|
||||
HeroDetailLoaded(this.hero);
|
||||
|
||||
@override
|
||||
List<Object> get props => [hero];
|
||||
}
|
||||
|
||||
class HeroDetailError extends HeroDetailState {
|
||||
final String message;
|
||||
|
||||
HeroDetailError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
|
||||
// BLoC
|
||||
class HeroDetailBloc extends Bloc<HeroDetailEvent, HeroDetailState> {
|
||||
final HeroRepository heroRepository;
|
||||
|
||||
HeroDetailBloc(this.heroRepository) : super(HeroDetailInitial()) {
|
||||
on<FetchHeroDetails>((event, emit) async {
|
||||
emit(HeroDetailLoading());
|
||||
try {
|
||||
final hero = await heroRepository.getHeroDetails(event.heroId);
|
||||
emit(HeroDetailLoaded(hero));
|
||||
} catch (e) {
|
||||
emit(HeroDetailError(e.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
35
lib/presentation/home_page/bloc/state.dart
Normal file
35
lib/presentation/home_page/bloc/state.dart
Normal file
@ -0,0 +1,35 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../data/dtos/hero_dto.dart';
|
||||
import '../../../data/repositories/hero_repository.dart';
|
||||
|
||||
|
||||
// States
|
||||
abstract class HeroListState extends Equatable {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class HeroListInitial extends HeroListState {}
|
||||
|
||||
class HeroListLoading extends HeroListState {}
|
||||
|
||||
class HeroListLoaded extends HeroListState {
|
||||
final List<HeroDto> heroes;
|
||||
|
||||
HeroListLoaded(this.heroes);
|
||||
|
||||
@override
|
||||
List<Object> get props => [heroes];
|
||||
}
|
||||
|
||||
class HeroListError extends HeroListState {
|
||||
final String message;
|
||||
|
||||
HeroListError(this.message);
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user