поправил файлики

This commit is contained in:
MaD 2024-12-17 22:28:51 +04:00
parent 88711e8f27
commit 97cad27d29
13 changed files with 192 additions and 148 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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');

View 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()));
}
});
}
}

View 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];
}

View 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];
}

View File

@ -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> {

View 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];
}

View 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];
}

View File

@ -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> {

View 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 {}

View File

@ -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()));
}
});
}
}

View 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];
}