initalizing the mobile apps
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
library staff_authentication;
|
||||
|
||||
import 'package:flutter_modular/flutter_modular.dart';
|
||||
import 'package:krow_data_connect/krow_data_connect.dart';
|
||||
import 'package:staff_authentication/src/data/repositories_impl/auth_repository_impl.dart';
|
||||
import 'package:staff_authentication/src/domain/repositories/auth_repository_interface.dart';
|
||||
import 'package:staff_authentication/src/domain/usecases/sign_in_with_phone_usecase.dart';
|
||||
import 'package:staff_authentication/src/domain/usecases/verify_otp_usecase.dart';
|
||||
import 'package:staff_authentication/src/presentation/blocs/auth_bloc.dart';
|
||||
import 'package:staff_authentication/src/presentation/blocs/profile_setup/profile_setup_bloc.dart';
|
||||
import 'package:staff_authentication/src/presentation/pages/get_started_page.dart';
|
||||
import 'package:staff_authentication/src/presentation/pages/phone_verification_page.dart';
|
||||
import 'package:staff_authentication/src/presentation/pages/profile_setup_page.dart';
|
||||
import 'package:staff_authentication/src/domain/ui_entities/auth_mode.dart';
|
||||
|
||||
export 'src/domain/ui_entities/auth_mode.dart';
|
||||
export 'src/presentation/pages/get_started_page.dart';
|
||||
export 'src/presentation/pages/phone_verification_page.dart';
|
||||
export 'src/presentation/pages/profile_setup_page.dart';
|
||||
export 'package:core_localization/core_localization.dart';
|
||||
|
||||
/// A [Module] for the staff authentication feature.
|
||||
class StaffAuthenticationModule extends Module {
|
||||
@override
|
||||
List<Module> get imports => [DataConnectModule()];
|
||||
|
||||
@override
|
||||
void binds(Injector i) {
|
||||
// Repositories
|
||||
i.addLazySingleton<AuthRepositoryInterface>(
|
||||
() => AuthRepositoryImpl(mock: i.get<AuthRepositoryMock>()),
|
||||
);
|
||||
|
||||
// UseCases
|
||||
i.addLazySingleton(SignInWithPhoneUseCase.new);
|
||||
i.addLazySingleton(VerifyOtpUseCase.new);
|
||||
|
||||
// BLoCs
|
||||
i.addLazySingleton<AuthBloc>(
|
||||
() => AuthBloc(
|
||||
signInUseCase: i.get<SignInWithPhoneUseCase>(),
|
||||
verifyOtpUseCase: i.get<VerifyOtpUseCase>(),
|
||||
),
|
||||
);
|
||||
i.add<ProfileSetupBloc>(ProfileSetupBloc.new);
|
||||
}
|
||||
|
||||
@override
|
||||
void routes(r) {
|
||||
r.child('/', child: (_) => const GetStartedPage());
|
||||
r.child(
|
||||
'/phone-verification',
|
||||
child: (context) {
|
||||
final Map<String, dynamic>? data = r.args.data;
|
||||
final String? modeName = data?['mode'];
|
||||
final AuthMode mode = AuthMode.values.firstWhere(
|
||||
(e) => e.name == modeName,
|
||||
orElse: () => AuthMode.login,
|
||||
);
|
||||
return PhoneVerificationPage(mode: mode);
|
||||
},
|
||||
);
|
||||
r.child('/profile-setup', child: (_) => const ProfileSetupPage());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user