library client_authentication; import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'src/data/repositories_impl/auth_repository_impl.dart'; import 'src/domain/repositories/auth_repository_interface.dart'; import 'src/domain/usecases/sign_in_with_email_use_case.dart'; import 'src/domain/usecases/sign_in_with_social_use_case.dart'; import 'src/domain/usecases/sign_out_use_case.dart'; import 'src/domain/usecases/sign_up_with_email_use_case.dart'; import 'src/presentation/blocs/client_auth_bloc.dart'; import 'src/presentation/pages/client_get_started_page.dart'; import 'src/presentation/pages/client_sign_in_page.dart'; import 'src/presentation/pages/client_sign_up_page.dart'; export 'src/presentation/pages/client_get_started_page.dart'; export 'src/presentation/pages/client_sign_in_page.dart'; export 'src/presentation/pages/client_sign_up_page.dart'; export 'src/presentation/navigation/client_auth_navigator.dart'; export 'package:core_localization/core_localization.dart'; /// A [Module] for the client authentication feature. class ClientAuthenticationModule extends Module { @override List get imports => [DataConnectModule()]; @override void binds(Injector i) { // Repositories i.addLazySingleton( () => AuthRepositoryImpl(dataSource: i.get()), ); // UseCases i.addLazySingleton( () => SignInWithEmailUseCase(i.get()), ); i.addLazySingleton( () => SignUpWithEmailUseCase(i.get()), ); i.addLazySingleton( () => SignInWithSocialUseCase(i.get()), ); i.addLazySingleton(() => SignOutUseCase(i.get())); // BLoCs i.addLazySingleton( () => ClientAuthBloc( signInWithEmail: i.get(), signUpWithEmail: i.get(), signInWithSocial: i.get(), signOut: i.get(), ), ); } @override void routes(r) { r.child('/', child: (_) => const ClientGetStartedPage()); r.child('/client-sign-in', child: (_) => const ClientSignInPage()); r.child('/client-sign-up', child: (_) => const ClientSignUpPage()); } }