Browse Source

fix: change intro -> splash

pull/27/head
AmirrezaChegini 4 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();
factory MyMiddlewares() => _i;
static FutureOr<String?> intro(BuildContext context, GoRouterState state) {
static FutureOr<String?> splash(BuildContext context, GoRouterState state) {
final String? firstDownload = LocalStorage.readData(
key: MyConstants.firstDownload);
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/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/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/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/sample/presentation/bloc/sample_bloc.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';
class Routes {
@ -28,7 +28,7 @@ class Routes {
factory Routes() => _i;
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 languagePage = '/language_page';
static const String homePage = '/home_page';
@ -37,7 +37,7 @@ class Routes {
}
GoRouter get appPages => GoRouter(
initialLocation: Routes.introPage,
initialLocation: Routes.splashPage,
navigatorKey: ContextProvider.navigatorKey,
routes: [
GoRoute(
@ -49,12 +49,12 @@ GoRouter get appPages => GoRouter(
),
),
GoRoute(
name: Routes.introPage,
path: Routes.introPage,
redirect: MyMiddlewares.intro,
name: Routes.splashPage,
path: Routes.splashPage,
redirect: MyMiddlewares.splash,
builder: (context, state) => BlocProvider(
create: (context) => IntroBloc(),
child: const IntroPage(),
create: (context) => SplashBloc(),
child: const SplashPage(),
),
),
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:hadi_hoda_flutter/common_ui/resources/my_assets.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------------
IntroBloc() : super(const IntroState());
SplashBloc() : super(const SplashState());
/// ------------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';
class IntroState {
class SplashState {
final BaseStatus getFilesStatus;
const IntroState({this.getFilesStatus = const BaseInit()});
const SplashState({this.getFilesStatus = const BaseInit()});
IntroState copyWith({
SplashState copyWith({
BaseStatus? getFilesStatus,
}) {
return IntroState(
return SplashState(
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/widgets/animations/rotation_anim.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
State<IntroPage> createState() => _IntroPageState();
State<SplashPage> createState() => _SplashPageState();
}
class _IntroPageState extends State<IntroPage> {
class _SplashPageState extends State<SplashPage> {
@override
void initState() {
super.initState();
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<GetSampleUseCase>(() => GetSampleUseCase(locator()));
/// Intro Feature
/// Download Feature
locator.registerLazySingleton<IDownloadDatasource>(() => DownloadDatasourceImpl(locator()));
locator.registerLazySingleton<IDownloadRepository>(() => DownloadRepositoryImpl(locator()));
@ -56,10 +54,6 @@ void initBindings() {
locator.registerLazySingleton<SaveLevelsUseCase>(() => SaveLevelsUseCase(locator()));
locator.registerLazySingleton<LoadingStreamUseCase>(() => LoadingStreamUseCase(locator()));
/// Language Feature
/// Home Feature
/// Question Feature
locator.registerLazySingleton<IQuestionDatasource>(() => QuestionDatasourceImpl());
locator.registerLazySingleton<IQuestionRepository>(() => QuestionRepositoryImpl(locator()));

Loading…
Cancel
Save