Browse Source

fix: change intro -> splash

pull/27/head
AmirrezaChegini 6 days ago
parent
commit
ec4cdb1867
  1. 2
      lib/core/middlewares/my_middlewares.dart
  2. 18
      lib/core/routers/my_routes.dart
  3. 3
      lib/features/intro/presentation/bloc/intro_event.dart
  4. 8
      lib/features/splash/presentation/bloc/splash_bloc.dart
  5. 3
      lib/features/splash/presentation/bloc/splash_event.dart
  6. 8
      lib/features/splash/presentation/bloc/splash_state.dart
  7. 12
      lib/features/splash/presentation/ui/splash_page.dart
  8. 6
      lib/init_bindings.dart

2
lib/core/middlewares/my_middlewares.dart

@ -11,7 +11,7 @@ class MyMiddlewares {
const MyMiddlewares._internal(); const MyMiddlewares._internal();
factory MyMiddlewares() => _i; factory MyMiddlewares() => _i;
static FutureOr<String?> intro(BuildContext context, GoRouterState state) {
static FutureOr<String?> splash(BuildContext context, GoRouterState state) {
final String? firstDownload = LocalStorage.readData( final String? firstDownload = LocalStorage.readData(
key: MyConstants.firstDownload); key: MyConstants.firstDownload);
if (firstDownload != 'true') { if (firstDownload != 'true') {

18
lib/core/routers/my_routes.dart

@ -7,8 +7,6 @@ import 'package:hadi_hoda_flutter/features/download/presentation/bloc/download_e
import 'package:hadi_hoda_flutter/features/download/presentation/ui/download_page.dart'; import 'package:hadi_hoda_flutter/features/download/presentation/ui/download_page.dart';
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_bloc.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/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/language/presentation/bloc/language_bloc.dart'; import 'package:hadi_hoda_flutter/features/language/presentation/bloc/language_bloc.dart';
import 'package:hadi_hoda_flutter/features/language/presentation/bloc/language_event.dart'; import 'package:hadi_hoda_flutter/features/language/presentation/bloc/language_event.dart';
import 'package:hadi_hoda_flutter/features/language/presentation/ui/language_page.dart'; import 'package:hadi_hoda_flutter/features/language/presentation/ui/language_page.dart';
@ -20,6 +18,8 @@ import 'package:hadi_hoda_flutter/features/question/presentation/bloc/question_e
import 'package:hadi_hoda_flutter/features/question/presentation/ui/question_page.dart'; import 'package:hadi_hoda_flutter/features/question/presentation/ui/question_page.dart';
import 'package:hadi_hoda_flutter/features/sample/presentation/bloc/sample_bloc.dart'; import 'package:hadi_hoda_flutter/features/sample/presentation/bloc/sample_bloc.dart';
import 'package:hadi_hoda_flutter/features/sample/presentation/ui/sample_page.dart'; import 'package:hadi_hoda_flutter/features/sample/presentation/ui/sample_page.dart';
import 'package:hadi_hoda_flutter/features/splash/presentation/bloc/splash_bloc.dart';
import 'package:hadi_hoda_flutter/features/splash/presentation/ui/splash_page.dart';
import 'package:hadi_hoda_flutter/init_bindings.dart'; import 'package:hadi_hoda_flutter/init_bindings.dart';
class Routes { class Routes {
@ -28,7 +28,7 @@ class Routes {
factory Routes() => _i; factory Routes() => _i;
static const String samplePage = '/sample_page'; static const String samplePage = '/sample_page';
static const String introPage = '/intro_page';
static const String splashPage = '/splash_page';
static const String downloadPage = '/download_page'; static const String downloadPage = '/download_page';
static const String languagePage = '/language_page'; static const String languagePage = '/language_page';
static const String homePage = '/home_page'; static const String homePage = '/home_page';
@ -37,7 +37,7 @@ class Routes {
} }
GoRouter get appPages => GoRouter( GoRouter get appPages => GoRouter(
initialLocation: Routes.introPage,
initialLocation: Routes.splashPage,
navigatorKey: ContextProvider.navigatorKey, navigatorKey: ContextProvider.navigatorKey,
routes: [ routes: [
GoRoute( GoRoute(
@ -49,12 +49,12 @@ GoRouter get appPages => GoRouter(
), ),
), ),
GoRoute( GoRoute(
name: Routes.introPage,
path: Routes.introPage,
redirect: MyMiddlewares.intro,
name: Routes.splashPage,
path: Routes.splashPage,
redirect: MyMiddlewares.splash,
builder: (context, state) => BlocProvider( builder: (context, state) => BlocProvider(
create: (context) => IntroBloc(),
child: const IntroPage(),
create: (context) => SplashBloc(),
child: const SplashPage(),
), ),
), ),
GoRoute( GoRoute(

3
lib/features/intro/presentation/bloc/intro_event.dart

@ -1,3 +0,0 @@
sealed class IntroEvent {
const IntroEvent();
}

8
lib/features/intro/presentation/bloc/intro_bloc.dart → lib/features/splash/presentation/bloc/splash_bloc.dart

@ -3,12 +3,12 @@ import 'package:flutter/cupertino.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart';
import 'package:hadi_hoda_flutter/core/routers/my_routes.dart'; import 'package:hadi_hoda_flutter/core/routers/my_routes.dart';
import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_event.dart';
import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_state.dart';
import 'package:hadi_hoda_flutter/features/splash/presentation/bloc/splash_event.dart';
import 'package:hadi_hoda_flutter/features/splash/presentation/bloc/splash_state.dart';
class IntroBloc extends Bloc<IntroEvent, IntroState> {
class SplashBloc extends Bloc<SplashEvent, SplashState> {
/// ------------constructor------------ /// ------------constructor------------
IntroBloc() : super(const IntroState());
SplashBloc() : super(const SplashState());
/// ------------UseCases------------ /// ------------UseCases------------

3
lib/features/splash/presentation/bloc/splash_event.dart

@ -0,0 +1,3 @@
sealed class SplashEvent {
const SplashEvent();
}

8
lib/features/intro/presentation/bloc/intro_state.dart → lib/features/splash/presentation/bloc/splash_state.dart

@ -1,14 +1,14 @@
import 'package:hadi_hoda_flutter/core/status/base_status.dart'; import 'package:hadi_hoda_flutter/core/status/base_status.dart';
class IntroState {
class SplashState {
final BaseStatus getFilesStatus; final BaseStatus getFilesStatus;
const IntroState({this.getFilesStatus = const BaseInit()});
const SplashState({this.getFilesStatus = const BaseInit()});
IntroState copyWith({
SplashState copyWith({
BaseStatus? getFilesStatus, BaseStatus? getFilesStatus,
}) { }) {
return IntroState(
return SplashState(
getFilesStatus: getFilesStatus ?? this.getFilesStatus, getFilesStatus: getFilesStatus ?? this.getFilesStatus,
); );
} }

12
lib/features/intro/presentation/ui/intro_page.dart → lib/features/splash/presentation/ui/splash_page.dart

@ -5,21 +5,21 @@ import 'package:hadi_hoda_flutter/common_ui/resources/my_spaces.dart';
import 'package:hadi_hoda_flutter/core/utils/screen_size.dart'; import 'package:hadi_hoda_flutter/core/utils/screen_size.dart';
import 'package:hadi_hoda_flutter/core/widgets/animations/rotation_anim.dart'; import 'package:hadi_hoda_flutter/core/widgets/animations/rotation_anim.dart';
import 'package:hadi_hoda_flutter/core/widgets/images/my_image.dart'; import 'package:hadi_hoda_flutter/core/widgets/images/my_image.dart';
import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_bloc.dart';
import 'package:hadi_hoda_flutter/features/splash/presentation/bloc/splash_bloc.dart';
class IntroPage extends StatefulWidget {
const IntroPage({super.key});
class SplashPage extends StatefulWidget {
const SplashPage({super.key});
@override @override
State<IntroPage> createState() => _IntroPageState();
State<SplashPage> createState() => _SplashPageState();
} }
class _IntroPageState extends State<IntroPage> {
class _SplashPageState extends State<SplashPage> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<IntroBloc>().goToHomePage(context);
context.read<SplashBloc>().goToHomePage(context);
}); });
} }

6
lib/init_bindings.dart

@ -46,8 +46,6 @@ void initBindings() {
locator.registerLazySingleton<ISampleRepository>(() => SampleRepositoryImpl(locator())); locator.registerLazySingleton<ISampleRepository>(() => SampleRepositoryImpl(locator()));
locator.registerLazySingleton<GetSampleUseCase>(() => GetSampleUseCase(locator())); locator.registerLazySingleton<GetSampleUseCase>(() => GetSampleUseCase(locator()));
/// Intro Feature
/// Download Feature /// Download Feature
locator.registerLazySingleton<IDownloadDatasource>(() => DownloadDatasourceImpl(locator())); locator.registerLazySingleton<IDownloadDatasource>(() => DownloadDatasourceImpl(locator()));
locator.registerLazySingleton<IDownloadRepository>(() => DownloadRepositoryImpl(locator())); locator.registerLazySingleton<IDownloadRepository>(() => DownloadRepositoryImpl(locator()));
@ -56,10 +54,6 @@ void initBindings() {
locator.registerLazySingleton<SaveLevelsUseCase>(() => SaveLevelsUseCase(locator())); locator.registerLazySingleton<SaveLevelsUseCase>(() => SaveLevelsUseCase(locator()));
locator.registerLazySingleton<LoadingStreamUseCase>(() => LoadingStreamUseCase(locator())); locator.registerLazySingleton<LoadingStreamUseCase>(() => LoadingStreamUseCase(locator()));
/// Language Feature
/// Home Feature
/// Question Feature /// Question Feature
locator.registerLazySingleton<IQuestionDatasource>(() => QuestionDatasourceImpl()); locator.registerLazySingleton<IQuestionDatasource>(() => QuestionDatasourceImpl());
locator.registerLazySingleton<IQuestionRepository>(() => QuestionRepositoryImpl(locator())); locator.registerLazySingleton<IQuestionRepository>(() => QuestionRepositoryImpl(locator()));

Loading…
Cancel
Save