Browse Source

change: home -> level

pull/8/head
AmirrezaChegini 1 week ago
parent
commit
e601d576da
  1. 2
      lib/common_ui/resources/my_assets.dart
  2. 13
      lib/core/params/home_params.dart
  3. 13
      lib/core/params/level_params.dart
  4. 16
      lib/core/routers/my_routes.dart
  5. 28
      lib/features/home/data/datasource/home_datasource.dart
  6. 13
      lib/features/home/data/model/home_model.dart
  7. 29
      lib/features/home/data/repository_impl/home_repository_impl.dart
  8. 8
      lib/features/home/domain/repository/home_repository.dart
  9. 17
      lib/features/home/domain/usecases/get_home_usecase.dart
  10. 5
      lib/features/home/presentation/bloc/home_event.dart
  11. 15
      lib/features/home/presentation/bloc/home_state.dart
  12. 28
      lib/features/level/data/datasource/level_datasource.dart
  13. 13
      lib/features/level/data/model/level_model.dart
  14. 29
      lib/features/level/data/repository_impl/level_repository_impl.dart
  15. 4
      lib/features/level/domain/entity/level_entity.dart
  16. 0
      lib/features/level/domain/entity/level_location.dart
  17. 8
      lib/features/level/domain/repository/level_repository.dart
  18. 17
      lib/features/level/domain/usecases/get_level_usecase.dart
  19. 30
      lib/features/level/presentation/bloc/level_bloc.dart
  20. 5
      lib/features/level/presentation/bloc/level_event.dart
  21. 15
      lib/features/level/presentation/bloc/level_state.dart
  22. 44
      lib/features/level/presentation/ui/level_page.dart
  23. 0
      lib/features/level/presentation/ui/widgets/bottom_path.dart
  24. 4
      lib/features/level/presentation/ui/widgets/hint_level_widget.dart
  25. 18
      lib/features/level/presentation/ui/widgets/level_widget.dart
  26. 0
      lib/features/level/presentation/ui/widgets/top_path.dart
  27. 16
      lib/init_bindings.dart

2
lib/common_ui/resources/my_assets.dart

@ -17,7 +17,7 @@ class MyAssets {
static const String language = 'assets/images/language.svg';
static const String newHorizon = 'assets/images/new_horizon.svg';
static const String khadijeLogo = 'assets/images/khadije_logo.png';
static const String home = 'assets/images/home.svg';
static const String home = 'assets/images/level.svg';
static const String music = 'assets/images/music.svg';
static const String pattern = 'assets/images/pattern.png';
static const String persons = 'assets/images/persons.png';

13
lib/core/params/home_params.dart

@ -1,13 +0,0 @@
class HomeParams {
int? id;
HomeParams({this.id});
HomeParams copyWith({
int? id,
}) {
return HomeParams(
id: id ?? this.id,
);
}
}

13
lib/core/params/level_params.dart

@ -0,0 +1,13 @@
class LevelParams {
int? id;
LevelParams({this.id});
LevelParams copyWith({
int? id,
}) {
return LevelParams(
id: id ?? this.id,
);
}
}

16
lib/core/routers/my_routes.dart

@ -1,10 +1,10 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
import 'package:hadi_hoda_flutter/core/utils/context_provider.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_bloc.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/ui/home_page.dart';
import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_bloc.dart';
import 'package:hadi_hoda_flutter/features/intro/presentation/ui/intro_page.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/bloc/level_bloc.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/ui/level_page.dart';
import 'package:hadi_hoda_flutter/features/question/presentation/bloc/question_bloc.dart';
import 'package:hadi_hoda_flutter/features/question/presentation/ui/question_page.dart';
import 'package:hadi_hoda_flutter/init_bindings.dart';
@ -16,11 +16,11 @@ class Routes {
static const String introPage = '/intro_page';
static const String questionPage = '/question_page';
static const String homePage = '/home_page';
static const String levelPage = '/level_page';
}
GoRouter get appPages => GoRouter(
initialLocation: Routes.homePage,
initialLocation: Routes.levelPage,
navigatorKey: ContextProvider.navigatorKey,
routes: [
GoRoute(
@ -32,11 +32,11 @@ GoRouter get appPages => GoRouter(
),
),
GoRoute(
name: Routes.homePage,
path: Routes.homePage,
name: Routes.levelPage,
path: Routes.levelPage,
builder: (context, state) => BlocProvider(
create: (context) => HomeBloc(locator()),
child: const HomePage(),
create: (context) => LevelBloc(locator()),
child: const LevelPage(),
),
),
GoRoute(

28
lib/features/home/data/datasource/home_datasource.dart

@ -1,28 +0,0 @@
import 'package:hadi_hoda_flutter/core/constants/my_api.dart';
import 'package:hadi_hoda_flutter/core/network/http_request.dart';
import 'package:hadi_hoda_flutter/core/params/home_params.dart';
import 'package:hadi_hoda_flutter/core/response/base_response.dart';
import 'package:hadi_hoda_flutter/features/home/data/model/home_model.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
abstract class IHomeDatasource {
Future<HomeEntity> getData({required HomeParams params});
}
class HomeDatasourceImpl implements IHomeDatasource {
final IHttpRequest httpRequest;
const HomeDatasourceImpl(this.httpRequest);
@override
Future<HomeEntity> getData({required HomeParams params}) async {
final response = await httpRequest.get(
path: MyApi.baseUrl,
);
return BaseResponse.getData<HomeEntity>(
response?['data'],
(json) => HomeModel.fromJson(json),
);
}
}

13
lib/features/home/data/model/home_model.dart

@ -1,13 +0,0 @@
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
class HomeModel extends HomeEntity {
const HomeModel({
super.id,
});
factory HomeModel.fromJson(Map<String, dynamic> json) {
return HomeModel(
id: json['id'],
);
}
}

29
lib/features/home/data/repository_impl/home_repository_impl.dart

@ -1,29 +0,0 @@
import 'package:hadi_hoda_flutter/core/params/home_params.dart';
import 'package:flutter/foundation.dart';
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/home/data/datasource/home_datasource.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart';
class HomeRepositoryImpl implements IHomeRepository {
final IHomeDatasource datasource;
const HomeRepositoryImpl(this.datasource);
@override
Future<DataState<HomeEntity, MyException>> getData({required HomeParams params}) async {
try {
final HomeEntity response = await datasource.getData(params: params);
return DataState.success(response);
} on MyException catch (e) {
return DataState.error(e);
} catch (e) {
if (kDebugMode) {
rethrow;
} else {
return DataState.error(MyException(errorMessage: '$e'));
}
}
}
}

8
lib/features/home/domain/repository/home_repository.dart

@ -1,8 +0,0 @@
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/params/home_params.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
abstract class IHomeRepository {
Future<DataState<HomeEntity, MyException>> getData({required HomeParams params});
}

17
lib/features/home/domain/usecases/get_home_usecase.dart

@ -1,17 +0,0 @@
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/params/home_params.dart';
import 'package:hadi_hoda_flutter/core/usecase/usecase.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart';
class GetHomeUseCase implements UseCase<HomeEntity, HomeParams> {
final IHomeRepository repository;
const GetHomeUseCase(this.repository);
@override
Future<DataState<HomeEntity, MyException>> call(HomeParams params) {
return repository.getData(params: params);
}
}

5
lib/features/home/presentation/bloc/home_event.dart

@ -1,5 +0,0 @@
sealed class HomeEvent {
const HomeEvent();
}
class GetHomeEvent extends HomeEvent {}

15
lib/features/home/presentation/bloc/home_state.dart

@ -1,15 +0,0 @@
import 'package:hadi_hoda_flutter/core/status/base_status.dart';
class HomeState {
final BaseStatus getHomeStatus;
const HomeState({this.getHomeStatus = const BaseInit()});
HomeState copyWith({
BaseStatus? getHomeStatus,
}) {
return HomeState(
getHomeStatus: getHomeStatus ?? this.getHomeStatus,
);
}
}

28
lib/features/level/data/datasource/level_datasource.dart

@ -0,0 +1,28 @@
import 'package:hadi_hoda_flutter/core/constants/my_api.dart';
import 'package:hadi_hoda_flutter/core/network/http_request.dart';
import 'package:hadi_hoda_flutter/core/params/level_params.dart';
import 'package:hadi_hoda_flutter/core/response/base_response.dart';
import 'package:hadi_hoda_flutter/features/level/data/model/level_model.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
abstract class ILevelDatasource {
Future<LevelEntity> getData({required LevelParams params});
}
class LevelDatasourceImpl implements ILevelDatasource {
final IHttpRequest httpRequest;
const LevelDatasourceImpl(this.httpRequest);
@override
Future<LevelEntity> getData({required LevelParams params}) async {
final response = await httpRequest.get(
path: MyApi.baseUrl,
);
return BaseResponse.getData<LevelEntity>(
response?['data'],
(json) => LevelModel.fromJson(json),
);
}
}

13
lib/features/level/data/model/level_model.dart

@ -0,0 +1,13 @@
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
class LevelModel extends LevelEntity {
const LevelModel({
super.id,
});
factory LevelModel.fromJson(Map<String, dynamic> json) {
return LevelModel(
id: json['id'],
);
}
}

29
lib/features/level/data/repository_impl/level_repository_impl.dart

@ -0,0 +1,29 @@
import 'package:hadi_hoda_flutter/core/params/level_params.dart';
import 'package:flutter/foundation.dart';
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/level/data/datasource/level_datasource.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
import 'package:hadi_hoda_flutter/features/level/domain/repository/level_repository.dart';
class LevelRepositoryImpl implements ILevelRepository {
final ILevelDatasource datasource;
const LevelRepositoryImpl(this.datasource);
@override
Future<DataState<LevelEntity, MyException>> getData({required LevelParams params}) async {
try {
final LevelEntity response = await datasource.getData(params: params);
return DataState.success(response);
} on MyException catch (e) {
return DataState.error(e);
} catch (e) {
if (kDebugMode) {
rethrow;
} else {
return DataState.error(MyException(errorMessage: '$e'));
}
}
}
}

4
lib/features/home/domain/entity/home_entity.dart → lib/features/level/domain/entity/level_entity.dart

@ -1,9 +1,9 @@
import 'package:equatable/equatable.dart';
class HomeEntity extends Equatable {
class LevelEntity extends Equatable {
final int? id;
const HomeEntity({
const LevelEntity({
this.id,
});

0
lib/features/home/domain/entity/mission_location.dart → lib/features/level/domain/entity/level_location.dart

8
lib/features/level/domain/repository/level_repository.dart

@ -0,0 +1,8 @@
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/params/level_params.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
abstract class ILevelRepository {
Future<DataState<LevelEntity, MyException>> getData({required LevelParams params});
}

17
lib/features/level/domain/usecases/get_level_usecase.dart

@ -0,0 +1,17 @@
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
import 'package:hadi_hoda_flutter/core/params/level_params.dart';
import 'package:hadi_hoda_flutter/core/usecase/usecase.dart';
import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
import 'package:hadi_hoda_flutter/features/level/domain/repository/level_repository.dart';
class GetLevelUseCase implements UseCase<LevelEntity, LevelParams> {
final ILevelRepository repository;
const GetLevelUseCase(this.repository);
@override
Future<DataState<LevelEntity, MyException>> call(LevelParams params) {
return repository.getData(params: params);
}
}

30
lib/features/home/presentation/bloc/home_bloc.dart → lib/features/level/presentation/bloc/level_bloc.dart

@ -1,22 +1,22 @@
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:hadi_hoda_flutter/core/status/base_status.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
import 'package:hadi_hoda_flutter/features/home/domain/entity/mission_location.dart';
import 'package:hadi_hoda_flutter/features/home/domain/usecases/get_home_usecase.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_event.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_state.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_location.dart';
import 'package:hadi_hoda_flutter/features/level/domain/usecases/get_level_usecase.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/bloc/level_event.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/bloc/level_state.dart';
class HomeBloc extends Bloc<HomeEvent, HomeState> {
class LevelBloc extends Bloc<LevelEvent, LevelState> {
/// ------------constructor------------
HomeBloc(
this._getHomeUseCase,
) : super(const HomeState()) {
on<GetHomeEvent>(_getHomeEvent);
LevelBloc(
this._getLevelUseCase,
) : super(const LevelState()) {
on<GetLevelEvent>(_getLevelEvent);
}
/// ------------UseCases------------
final GetHomeUseCase _getHomeUseCase;
final GetLevelUseCase _getLevelUseCase;
/// ------------Variables------------
final List<MissionLocation> bottomLocationList = [
@ -50,15 +50,15 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
/// ------------Functions------------
/// ------------Api Calls------------
FutureOr<void> _getHomeEvent(event, emit) async {
await _getHomeUseCase(event.homeParams).then(
FutureOr<void> _getLevelEvent(event, emit) async {
await _getLevelUseCase(event.levelParams).then(
(value) {
value.fold(
(data) {
emit(state.copyWith(getHomeStatus: BaseComplete<HomeEntity>(data)));
emit(state.copyWith(getLevelStatus: BaseComplete<LevelEntity>(data)));
},
(error) {
emit(state.copyWith(getHomeStatus: BaseError(error.errorMessage)));
emit(state.copyWith(getLevelStatus: BaseError(error.errorMessage)));
},
);
},

5
lib/features/level/presentation/bloc/level_event.dart

@ -0,0 +1,5 @@
sealed class LevelEvent {
const LevelEvent();
}
class GetLevelEvent extends LevelEvent {}

15
lib/features/level/presentation/bloc/level_state.dart

@ -0,0 +1,15 @@
import 'package:hadi_hoda_flutter/core/status/base_status.dart';
class LevelState {
final BaseStatus getLevelStatus;
const LevelState({this.getLevelStatus = const BaseInit()});
LevelState copyWith({
BaseStatus? getLevelStatus,
}) {
return LevelState(
getLevelStatus: getLevelStatus ?? this.getLevelStatus,
);
}
}

44
lib/features/home/presentation/ui/home_page.dart → lib/features/level/presentation/ui/level_page.dart

@ -4,14 +4,14 @@ import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart';
import 'package:hadi_hoda_flutter/common_ui/resources/my_spaces.dart';
import 'package:hadi_hoda_flutter/core/utils/my_image.dart';
import 'package:hadi_hoda_flutter/core/utils/screen_size.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_bloc.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/ui/widgets/bottom_path.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/ui/widgets/hint_mission_widget.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/ui/widgets/mission_widget.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/ui/widgets/top_path.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/bloc/level_bloc.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/ui/widgets/bottom_path.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/ui/widgets/hint_level_widget.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/ui/widgets/level_widget.dart';
import 'package:hadi_hoda_flutter/features/level/presentation/ui/widgets/top_path.dart';
class HomePage extends StatelessWidget {
const HomePage({super.key});
class LevelPage extends StatelessWidget {
const LevelPage({super.key});
@override
Widget build(BuildContext context) {
@ -40,7 +40,7 @@ class HomePage extends StatelessWidget {
bottom: MediaQuery.viewPaddingOf(context).bottom,
right: MySpaces.s16,
left: MySpaces.s16,
child: HintMissionWidget(),
child: HintLevelWidget(),
);
}
@ -78,14 +78,14 @@ class HomePage extends StatelessWidget {
width: context.widthScreen * 0.6,
),
...List.generate(
context.read<HomeBloc>().topLocationList.length,
context.read<LevelBloc>().topLocationList.length,
(index) => Positioned(
top: context.read<HomeBloc>().topLocationList[index].top,
bottom: context.read<HomeBloc>().topLocationList[index].bottom,
right: context.read<HomeBloc>().topLocationList[index].right,
left: context.read<HomeBloc>().topLocationList[index].left,
child: MissionWidget(
index: context.read<HomeBloc>().topLocationList[index].index ?? 0,
top: context.read<LevelBloc>().topLocationList[index].top,
bottom: context.read<LevelBloc>().topLocationList[index].bottom,
right: context.read<LevelBloc>().topLocationList[index].right,
left: context.read<LevelBloc>().topLocationList[index].left,
child: LevelWidget(
index: context.read<LevelBloc>().topLocationList[index].index ?? 0,
),
),
),
@ -106,14 +106,14 @@ class HomePage extends StatelessWidget {
height: context.heightScreen * 0.6,
),
...List.generate(
context.read<HomeBloc>().bottomLocationList.length,
context.read<LevelBloc>().bottomLocationList.length,
(index) => Positioned(
top: context.read<HomeBloc>().bottomLocationList[index].top,
bottom: context.read<HomeBloc>().bottomLocationList[index].bottom,
right: context.read<HomeBloc>().bottomLocationList[index].right,
left: context.read<HomeBloc>().bottomLocationList[index].left,
child: MissionWidget(
index: context.read<HomeBloc>().bottomLocationList[index].index ?? 0,
top: context.read<LevelBloc>().bottomLocationList[index].top,
bottom: context.read<LevelBloc>().bottomLocationList[index].bottom,
right: context.read<LevelBloc>().bottomLocationList[index].right,
left: context.read<LevelBloc>().bottomLocationList[index].left,
child: LevelWidget(
index: context.read<LevelBloc>().bottomLocationList[index].index ?? 0,
),
),
),

0
lib/features/home/presentation/ui/widgets/bottom_path.dart → lib/features/level/presentation/ui/widgets/bottom_path.dart

4
lib/features/home/presentation/ui/widgets/hint_mission_widget.dart → lib/features/level/presentation/ui/widgets/hint_level_widget.dart

@ -6,8 +6,8 @@ import 'package:hadi_hoda_flutter/core/utils/my_image.dart';
import 'package:hadi_hoda_flutter/core/utils/screen_size.dart';
import 'package:hadi_hoda_flutter/core/widgets/answer_box/styles/text_box.dart';
class HintMissionWidget extends StatelessWidget {
const HintMissionWidget({super.key});
class HintLevelWidget extends StatelessWidget {
const HintLevelWidget({super.key});
@override
Widget build(BuildContext context) {

18
lib/features/home/presentation/ui/widgets/mission_widget.dart → lib/features/level/presentation/ui/widgets/level_widget.dart

@ -4,30 +4,30 @@ import 'package:hadi_hoda_flutter/common_ui/resources/my_text_style.dart';
import 'package:hadi_hoda_flutter/common_ui/theme/my_theme.dart';
import 'package:hadi_hoda_flutter/core/utils/my_image.dart';
enum MissionType {
enum LevelType {
unFinished,
finished,
current;
static Map<MissionType, String> get image => {
MissionType.unFinished: MyAssets.mission,
MissionType.finished: MyAssets.finishedMission,
MissionType.current: MyAssets.currentMission,
static Map<LevelType, String> get image => {
LevelType.unFinished: MyAssets.mission,
LevelType.finished: MyAssets.finishedMission,
LevelType.current: MyAssets.currentMission,
};
}
class MissionWidget extends StatelessWidget {
const MissionWidget({super.key, required this.index, this.type});
class LevelWidget extends StatelessWidget {
const LevelWidget({super.key, required this.index, this.type});
final int index;
final MissionType? type;
final LevelType? type;
@override
Widget build(BuildContext context) {
return Stack(
alignment: Alignment.topCenter,
children: [
MyImage(image: MissionType.image[type] ?? MyAssets.mission, size: 44),
MyImage(image: LevelType.image[type] ?? MyAssets.mission, size: 44),
Text(
'$index',
style: MyTextStyle.normal.copyWith(color: context.primaryColor),

0
lib/features/home/presentation/ui/widgets/top_path.dart → lib/features/level/presentation/ui/widgets/top_path.dart

16
lib/init_bindings.dart

@ -1,13 +1,13 @@
import 'package:hadi_hoda_flutter/core/network/http_request.dart';
import 'package:hadi_hoda_flutter/core/network/http_request_impl.dart';
import 'package:hadi_hoda_flutter/features/home/data/datasource/home_datasource.dart';
import 'package:hadi_hoda_flutter/features/home/data/repository_impl/home_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart';
import 'package:hadi_hoda_flutter/features/home/domain/usecases/get_home_usecase.dart';
import 'package:hadi_hoda_flutter/features/intro/data/datasource/intro_datasource.dart';
import 'package:hadi_hoda_flutter/features/intro/data/repository_impl/intro_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/intro/domain/repository/intro_repository.dart';
import 'package:hadi_hoda_flutter/features/intro/domain/usecases/get_intro_usecase.dart';
import 'package:hadi_hoda_flutter/features/level/data/datasource/level_datasource.dart';
import 'package:hadi_hoda_flutter/features/level/data/repository_impl/level_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/level/domain/repository/level_repository.dart';
import 'package:hadi_hoda_flutter/features/level/domain/usecases/get_level_usecase.dart';
import 'package:hadi_hoda_flutter/features/question/data/datasource/question_datasource.dart';
import 'package:hadi_hoda_flutter/features/question/data/repository_impl/question_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/question/domain/repository/question_repository.dart';
@ -39,8 +39,8 @@ void initBindings() {
locator.registerLazySingleton<IQuestionRepository>(() => QuestionRepositoryImpl(locator()));
locator.registerLazySingleton<GetQuestionUseCase>(() => GetQuestionUseCase(locator()));
/// Home Feature
locator.registerLazySingleton<IHomeDatasource>(() => HomeDatasourceImpl(locator()));
locator.registerLazySingleton<IHomeRepository>(() => HomeRepositoryImpl(locator()));
locator.registerLazySingleton<GetHomeUseCase>(() => GetHomeUseCase(locator()));
/// Level Feature
locator.registerLazySingleton<ILevelDatasource>(() => LevelDatasourceImpl(locator()));
locator.registerLazySingleton<ILevelRepository>(() => LevelRepositoryImpl(locator()));
locator.registerLazySingleton<GetLevelUseCase>(() => GetLevelUseCase(locator()));
}
Loading…
Cancel
Save