From e601d576dac407224798d8175001c5481d859974 Mon Sep 17 00:00:00 2001 From: AmirrezaChegini Date: Tue, 30 Sep 2025 10:59:59 +0330 Subject: [PATCH] change: home -> level --- lib/common_ui/resources/my_assets.dart | 2 +- lib/core/params/home_params.dart | 13 ------ lib/core/params/level_params.dart | 13 ++++++ lib/core/routers/my_routes.dart | 16 +++---- .../home/data/datasource/home_datasource.dart | 28 ------------ lib/features/home/data/model/home_model.dart | 13 ------ .../repository_impl/home_repository_impl.dart | 29 ------------ .../domain/repository/home_repository.dart | 8 ---- .../domain/usecases/get_home_usecase.dart | 17 ------- .../home/presentation/bloc/home_event.dart | 5 --- .../home/presentation/bloc/home_state.dart | 15 ------- .../data/datasource/level_datasource.dart | 28 ++++++++++++ .../level/data/model/level_model.dart | 13 ++++++ .../level_repository_impl.dart | 29 ++++++++++++ .../domain/entity/level_entity.dart} | 4 +- .../domain/entity/level_location.dart} | 0 .../domain/repository/level_repository.dart | 8 ++++ .../domain/usecases/get_level_usecase.dart | 17 +++++++ .../presentation/bloc/level_bloc.dart} | 30 ++++++------- .../level/presentation/bloc/level_event.dart | 5 +++ .../level/presentation/bloc/level_state.dart | 15 +++++++ .../presentation/ui/level_page.dart} | 44 +++++++++---------- .../presentation/ui/widgets/bottom_path.dart | 0 .../ui/widgets/hint_level_widget.dart} | 4 +- .../ui/widgets/level_widget.dart} | 18 ++++---- .../presentation/ui/widgets/top_path.dart | 0 lib/init_bindings.dart | 16 +++---- 27 files changed, 195 insertions(+), 195 deletions(-) delete mode 100644 lib/core/params/home_params.dart create mode 100644 lib/core/params/level_params.dart delete mode 100644 lib/features/home/data/datasource/home_datasource.dart delete mode 100644 lib/features/home/data/model/home_model.dart delete mode 100644 lib/features/home/data/repository_impl/home_repository_impl.dart delete mode 100644 lib/features/home/domain/repository/home_repository.dart delete mode 100644 lib/features/home/domain/usecases/get_home_usecase.dart delete mode 100644 lib/features/home/presentation/bloc/home_event.dart delete mode 100644 lib/features/home/presentation/bloc/home_state.dart create mode 100644 lib/features/level/data/datasource/level_datasource.dart create mode 100644 lib/features/level/data/model/level_model.dart create mode 100644 lib/features/level/data/repository_impl/level_repository_impl.dart rename lib/features/{home/domain/entity/home_entity.dart => level/domain/entity/level_entity.dart} (71%) rename lib/features/{home/domain/entity/mission_location.dart => level/domain/entity/level_location.dart} (100%) create mode 100644 lib/features/level/domain/repository/level_repository.dart create mode 100644 lib/features/level/domain/usecases/get_level_usecase.dart rename lib/features/{home/presentation/bloc/home_bloc.dart => level/presentation/bloc/level_bloc.dart} (64%) create mode 100644 lib/features/level/presentation/bloc/level_event.dart create mode 100644 lib/features/level/presentation/bloc/level_state.dart rename lib/features/{home/presentation/ui/home_page.dart => level/presentation/ui/level_page.dart} (61%) rename lib/features/{home => level}/presentation/ui/widgets/bottom_path.dart (100%) rename lib/features/{home/presentation/ui/widgets/hint_mission_widget.dart => level/presentation/ui/widgets/hint_level_widget.dart} (95%) rename lib/features/{home/presentation/ui/widgets/mission_widget.dart => level/presentation/ui/widgets/level_widget.dart} (59%) rename lib/features/{home => level}/presentation/ui/widgets/top_path.dart (100%) diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart index 1080edd..fd5882e 100644 --- a/lib/common_ui/resources/my_assets.dart +++ b/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'; diff --git a/lib/core/params/home_params.dart b/lib/core/params/home_params.dart deleted file mode 100644 index fdd3091..0000000 --- a/lib/core/params/home_params.dart +++ /dev/null @@ -1,13 +0,0 @@ -class HomeParams { - int? id; - - HomeParams({this.id}); - - HomeParams copyWith({ - int? id, - }) { - return HomeParams( - id: id ?? this.id, - ); - } -} diff --git a/lib/core/params/level_params.dart b/lib/core/params/level_params.dart new file mode 100644 index 0000000..1e885f8 --- /dev/null +++ b/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, + ); + } +} diff --git a/lib/core/routers/my_routes.dart b/lib/core/routers/my_routes.dart index 5a91e0a..b69981b 100644 --- a/lib/core/routers/my_routes.dart +++ b/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( diff --git a/lib/features/home/data/datasource/home_datasource.dart b/lib/features/home/data/datasource/home_datasource.dart deleted file mode 100644 index 17db1cf..0000000 --- a/lib/features/home/data/datasource/home_datasource.dart +++ /dev/null @@ -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 getData({required HomeParams params}); -} - -class HomeDatasourceImpl implements IHomeDatasource { - final IHttpRequest httpRequest; - - const HomeDatasourceImpl(this.httpRequest); - - @override - Future getData({required HomeParams params}) async { - final response = await httpRequest.get( - path: MyApi.baseUrl, - ); - - return BaseResponse.getData( - response?['data'], - (json) => HomeModel.fromJson(json), - ); - } -} diff --git a/lib/features/home/data/model/home_model.dart b/lib/features/home/data/model/home_model.dart deleted file mode 100644 index c63431f..0000000 --- a/lib/features/home/data/model/home_model.dart +++ /dev/null @@ -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 json) { - return HomeModel( - id: json['id'], - ); - } -} diff --git a/lib/features/home/data/repository_impl/home_repository_impl.dart b/lib/features/home/data/repository_impl/home_repository_impl.dart deleted file mode 100644 index 594969b..0000000 --- a/lib/features/home/data/repository_impl/home_repository_impl.dart +++ /dev/null @@ -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> 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')); - } - } - } -} diff --git a/lib/features/home/domain/repository/home_repository.dart b/lib/features/home/domain/repository/home_repository.dart deleted file mode 100644 index 81ad27c..0000000 --- a/lib/features/home/domain/repository/home_repository.dart +++ /dev/null @@ -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> getData({required HomeParams params}); -} diff --git a/lib/features/home/domain/usecases/get_home_usecase.dart b/lib/features/home/domain/usecases/get_home_usecase.dart deleted file mode 100644 index cbb629d..0000000 --- a/lib/features/home/domain/usecases/get_home_usecase.dart +++ /dev/null @@ -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 { - final IHomeRepository repository; - - const GetHomeUseCase(this.repository); - - @override - Future> call(HomeParams params) { - return repository.getData(params: params); - } -} diff --git a/lib/features/home/presentation/bloc/home_event.dart b/lib/features/home/presentation/bloc/home_event.dart deleted file mode 100644 index 2dc9c2f..0000000 --- a/lib/features/home/presentation/bloc/home_event.dart +++ /dev/null @@ -1,5 +0,0 @@ -sealed class HomeEvent { - const HomeEvent(); -} - -class GetHomeEvent extends HomeEvent {} diff --git a/lib/features/home/presentation/bloc/home_state.dart b/lib/features/home/presentation/bloc/home_state.dart deleted file mode 100644 index 97a1646..0000000 --- a/lib/features/home/presentation/bloc/home_state.dart +++ /dev/null @@ -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, - ); - } -} diff --git a/lib/features/level/data/datasource/level_datasource.dart b/lib/features/level/data/datasource/level_datasource.dart new file mode 100644 index 0000000..ec1f645 --- /dev/null +++ b/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 getData({required LevelParams params}); +} + +class LevelDatasourceImpl implements ILevelDatasource { + final IHttpRequest httpRequest; + + const LevelDatasourceImpl(this.httpRequest); + + @override + Future getData({required LevelParams params}) async { + final response = await httpRequest.get( + path: MyApi.baseUrl, + ); + + return BaseResponse.getData( + response?['data'], + (json) => LevelModel.fromJson(json), + ); + } +} diff --git a/lib/features/level/data/model/level_model.dart b/lib/features/level/data/model/level_model.dart new file mode 100644 index 0000000..1d3fb5f --- /dev/null +++ b/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 json) { + return LevelModel( + id: json['id'], + ); + } +} diff --git a/lib/features/level/data/repository_impl/level_repository_impl.dart b/lib/features/level/data/repository_impl/level_repository_impl.dart new file mode 100644 index 0000000..6673644 --- /dev/null +++ b/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> 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')); + } + } + } +} diff --git a/lib/features/home/domain/entity/home_entity.dart b/lib/features/level/domain/entity/level_entity.dart similarity index 71% rename from lib/features/home/domain/entity/home_entity.dart rename to lib/features/level/domain/entity/level_entity.dart index 582723c..4b4616b 100644 --- a/lib/features/home/domain/entity/home_entity.dart +++ b/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, }); diff --git a/lib/features/home/domain/entity/mission_location.dart b/lib/features/level/domain/entity/level_location.dart similarity index 100% rename from lib/features/home/domain/entity/mission_location.dart rename to lib/features/level/domain/entity/level_location.dart diff --git a/lib/features/level/domain/repository/level_repository.dart b/lib/features/level/domain/repository/level_repository.dart new file mode 100644 index 0000000..8d9b560 --- /dev/null +++ b/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> getData({required LevelParams params}); +} diff --git a/lib/features/level/domain/usecases/get_level_usecase.dart b/lib/features/level/domain/usecases/get_level_usecase.dart new file mode 100644 index 0000000..76e4caf --- /dev/null +++ b/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 { + final ILevelRepository repository; + + const GetLevelUseCase(this.repository); + + @override + Future> call(LevelParams params) { + return repository.getData(params: params); + } +} diff --git a/lib/features/home/presentation/bloc/home_bloc.dart b/lib/features/level/presentation/bloc/level_bloc.dart similarity index 64% rename from lib/features/home/presentation/bloc/home_bloc.dart rename to lib/features/level/presentation/bloc/level_bloc.dart index 9253479..b19ba7f 100644 --- a/lib/features/home/presentation/bloc/home_bloc.dart +++ b/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 { +class LevelBloc extends Bloc { /// ------------constructor------------ - HomeBloc( - this._getHomeUseCase, - ) : super(const HomeState()) { - on(_getHomeEvent); + LevelBloc( + this._getLevelUseCase, + ) : super(const LevelState()) { + on(_getLevelEvent); } /// ------------UseCases------------ - final GetHomeUseCase _getHomeUseCase; + final GetLevelUseCase _getLevelUseCase; /// ------------Variables------------ final List bottomLocationList = [ @@ -50,15 +50,15 @@ class HomeBloc extends Bloc { /// ------------Functions------------ /// ------------Api Calls------------ - FutureOr _getHomeEvent(event, emit) async { - await _getHomeUseCase(event.homeParams).then( + FutureOr _getLevelEvent(event, emit) async { + await _getLevelUseCase(event.levelParams).then( (value) { value.fold( (data) { - emit(state.copyWith(getHomeStatus: BaseComplete(data))); + emit(state.copyWith(getLevelStatus: BaseComplete(data))); }, (error) { - emit(state.copyWith(getHomeStatus: BaseError(error.errorMessage))); + emit(state.copyWith(getLevelStatus: BaseError(error.errorMessage))); }, ); }, diff --git a/lib/features/level/presentation/bloc/level_event.dart b/lib/features/level/presentation/bloc/level_event.dart new file mode 100644 index 0000000..231b8ad --- /dev/null +++ b/lib/features/level/presentation/bloc/level_event.dart @@ -0,0 +1,5 @@ +sealed class LevelEvent { + const LevelEvent(); +} + +class GetLevelEvent extends LevelEvent {} diff --git a/lib/features/level/presentation/bloc/level_state.dart b/lib/features/level/presentation/bloc/level_state.dart new file mode 100644 index 0000000..4ecb07c --- /dev/null +++ b/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, + ); + } +} diff --git a/lib/features/home/presentation/ui/home_page.dart b/lib/features/level/presentation/ui/level_page.dart similarity index 61% rename from lib/features/home/presentation/ui/home_page.dart rename to lib/features/level/presentation/ui/level_page.dart index 303a800..2c86672 100644 --- a/lib/features/home/presentation/ui/home_page.dart +++ b/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().topLocationList.length, + context.read().topLocationList.length, (index) => Positioned( - top: context.read().topLocationList[index].top, - bottom: context.read().topLocationList[index].bottom, - right: context.read().topLocationList[index].right, - left: context.read().topLocationList[index].left, - child: MissionWidget( - index: context.read().topLocationList[index].index ?? 0, + top: context.read().topLocationList[index].top, + bottom: context.read().topLocationList[index].bottom, + right: context.read().topLocationList[index].right, + left: context.read().topLocationList[index].left, + child: LevelWidget( + index: context.read().topLocationList[index].index ?? 0, ), ), ), @@ -106,14 +106,14 @@ class HomePage extends StatelessWidget { height: context.heightScreen * 0.6, ), ...List.generate( - context.read().bottomLocationList.length, + context.read().bottomLocationList.length, (index) => Positioned( - top: context.read().bottomLocationList[index].top, - bottom: context.read().bottomLocationList[index].bottom, - right: context.read().bottomLocationList[index].right, - left: context.read().bottomLocationList[index].left, - child: MissionWidget( - index: context.read().bottomLocationList[index].index ?? 0, + top: context.read().bottomLocationList[index].top, + bottom: context.read().bottomLocationList[index].bottom, + right: context.read().bottomLocationList[index].right, + left: context.read().bottomLocationList[index].left, + child: LevelWidget( + index: context.read().bottomLocationList[index].index ?? 0, ), ), ), diff --git a/lib/features/home/presentation/ui/widgets/bottom_path.dart b/lib/features/level/presentation/ui/widgets/bottom_path.dart similarity index 100% rename from lib/features/home/presentation/ui/widgets/bottom_path.dart rename to lib/features/level/presentation/ui/widgets/bottom_path.dart diff --git a/lib/features/home/presentation/ui/widgets/hint_mission_widget.dart b/lib/features/level/presentation/ui/widgets/hint_level_widget.dart similarity index 95% rename from lib/features/home/presentation/ui/widgets/hint_mission_widget.dart rename to lib/features/level/presentation/ui/widgets/hint_level_widget.dart index a78eb0f..0ddb472 100644 --- a/lib/features/home/presentation/ui/widgets/hint_mission_widget.dart +++ b/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) { diff --git a/lib/features/home/presentation/ui/widgets/mission_widget.dart b/lib/features/level/presentation/ui/widgets/level_widget.dart similarity index 59% rename from lib/features/home/presentation/ui/widgets/mission_widget.dart rename to lib/features/level/presentation/ui/widgets/level_widget.dart index 8ae35b7..489bb72 100644 --- a/lib/features/home/presentation/ui/widgets/mission_widget.dart +++ b/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 get image => { - MissionType.unFinished: MyAssets.mission, - MissionType.finished: MyAssets.finishedMission, - MissionType.current: MyAssets.currentMission, + static Map 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), diff --git a/lib/features/home/presentation/ui/widgets/top_path.dart b/lib/features/level/presentation/ui/widgets/top_path.dart similarity index 100% rename from lib/features/home/presentation/ui/widgets/top_path.dart rename to lib/features/level/presentation/ui/widgets/top_path.dart diff --git a/lib/init_bindings.dart b/lib/init_bindings.dart index ee8f953..325ee32 100644 --- a/lib/init_bindings.dart +++ b/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(() => QuestionRepositoryImpl(locator())); locator.registerLazySingleton(() => GetQuestionUseCase(locator())); - /// Home Feature - locator.registerLazySingleton(() => HomeDatasourceImpl(locator())); - locator.registerLazySingleton(() => HomeRepositoryImpl(locator())); - locator.registerLazySingleton(() => GetHomeUseCase(locator())); + /// Level Feature + locator.registerLazySingleton(() => LevelDatasourceImpl(locator())); + locator.registerLazySingleton(() => LevelRepositoryImpl(locator())); + locator.registerLazySingleton(() => GetLevelUseCase(locator())); }