diff --git a/apps/mobile/packages/features/client/authentication/lib/client_authentication.dart b/apps/mobile/packages/features/client/authentication/lib/client_authentication.dart index f78c647f..035d7af8 100644 --- a/apps/mobile/packages/features/client/authentication/lib/client_authentication.dart +++ b/apps/mobile/packages/features/client/authentication/lib/client_authentication.dart @@ -2,6 +2,7 @@ library client_authentication; import 'package:firebase_auth/firebase_auth.dart' as firebase; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_core/core.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'; @@ -17,7 +18,6 @@ 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. @@ -60,8 +60,8 @@ class ClientAuthenticationModule extends Module { @override void routes(RouteManager r) { - r.child('/', child: (_) => const ClientGetStartedPage()); - r.child('/client-sign-in', child: (_) => const ClientSignInPage()); - r.child('/client-sign-up', child: (_) => const ClientSignUpPage()); + r.child(ClientPaths.root, child: (_) => const ClientGetStartedPage()); + r.child(ClientPaths.signIn, child: (_) => const ClientSignInPage()); + r.child(ClientPaths.signUp, child: (_) => const ClientSignUpPage()); } } diff --git a/apps/mobile/packages/features/client/authentication/lib/src/presentation/navigation/client_auth_navigator.dart b/apps/mobile/packages/features/client/authentication/lib/src/presentation/navigation/client_auth_navigator.dart deleted file mode 100644 index 472d4707..00000000 --- a/apps/mobile/packages/features/client/authentication/lib/src/presentation/navigation/client_auth_navigator.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:flutter_modular/flutter_modular.dart'; - -/// Typed navigation for the Client Authentication feature. -/// -/// This extension on [IModularNavigator] provides named methods for -/// navigating between authentication pages, reducing magic strings and -/// improving maintainability. -extension ClientAuthNavigator on IModularNavigator { - /// Navigates to the sign in page using a push named route. - void pushClientSignIn() { - pushNamed('/client-sign-in'); - } - - /// Navigates to the sign up page using a push named route. - void pushClientSignUp() { - pushNamed('/client-sign-up'); - } - - /// Navigates to the main client home dashboard. - /// - /// Uses absolute path navigation to the client main shell, - /// which will display the home tab by default. - void navigateClientHome() { - navigate('/client-main/home'); - } -} diff --git a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_get_started_page.dart b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_get_started_page.dart index 0c9f9f3c..6635b381 100644 --- a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_get_started_page.dart +++ b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_get_started_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; -import '../navigation/client_auth_navigator.dart'; +import 'package:krow_core/core.dart'; class ClientGetStartedPage extends StatelessWidget { const ClientGetStartedPage({super.key}); @@ -96,7 +96,7 @@ class ClientGetStartedPage extends StatelessWidget { .client_authentication .get_started_page .sign_in_button, - onPressed: () => Modular.to.pushClientSignIn(), + onPressed: () => Modular.to.toClientSignIn(), fullWidth: true, ), @@ -108,7 +108,7 @@ class ClientGetStartedPage extends StatelessWidget { .client_authentication .get_started_page .create_account_button, - onPressed: () => Modular.to.pushClientSignUp(), + onPressed: () => Modular.to.toClientSignUp(), fullWidth: true, ), ], diff --git a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_in_page.dart b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_in_page.dart index 33df7cbe..e8d74a6f 100644 --- a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_in_page.dart +++ b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_in_page.dart @@ -4,14 +4,13 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_core/core.dart'; import '../blocs/client_auth_bloc.dart'; import '../blocs/client_auth_event.dart'; import '../blocs/client_auth_state.dart'; -import '../navigation/client_auth_navigator.dart'; import '../widgets/client_sign_in_page/client_sign_in_form.dart'; import '../widgets/common/auth_divider.dart'; -import '../widgets/common/auth_social_button.dart'; /// Page for client users to sign in to their account. /// @@ -43,7 +42,7 @@ class ClientSignInPage extends StatelessWidget { child: BlocConsumer( listener: (BuildContext context, ClientAuthState state) { if (state.status == ClientAuthStatus.authenticated) { - Modular.to.navigateClientHome(); + Modular.to.toClientHome(); } else if (state.status == ClientAuthStatus.error) { final String errorMessage = state.errorMessage != null ? translateErrorKey(state.errorMessage!) @@ -107,7 +106,7 @@ class ClientSignInPage extends StatelessWidget { ), const SizedBox(width: UiConstants.space1), GestureDetector( - onTap: () => Modular.to.pushClientSignUp(), + onTap: () => Modular.to.toClientSignUp(), child: Text( i18n.sign_up_link, style: UiTypography.body2m.textLink, diff --git a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_up_page.dart b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_up_page.dart index 2453b486..d8c297ae 100644 --- a/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_up_page.dart +++ b/apps/mobile/packages/features/client/authentication/lib/src/presentation/pages/client_sign_up_page.dart @@ -4,11 +4,11 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_core/core.dart'; import '../blocs/client_auth_bloc.dart'; import '../blocs/client_auth_event.dart'; import '../blocs/client_auth_state.dart'; -import '../navigation/client_auth_navigator.dart'; import '../widgets/client_sign_up_page/client_sign_up_form.dart'; import '../widgets/common/auth_divider.dart'; import '../widgets/common/auth_social_button.dart'; @@ -47,7 +47,7 @@ class ClientSignUpPage extends StatelessWidget { child: BlocConsumer( listener: (BuildContext context, ClientAuthState state) { if (state.status == ClientAuthStatus.authenticated) { - Modular.to.navigateClientHome(); + Modular.to.toClientHome(); } else if (state.status == ClientAuthStatus.error) { final String errorMessage = state.errorMessage != null ? translateErrorKey(state.errorMessage!) @@ -116,7 +116,7 @@ class ClientSignUpPage extends StatelessWidget { ), const SizedBox(width: UiConstants.space1), GestureDetector( - onTap: () => Modular.to.pushClientSignIn(), + onTap: () => Modular.to.toClientSignIn(), child: Text( i18n.sign_in_link, style: UiTypography.body2m.textLink, diff --git a/apps/mobile/packages/features/client/authentication/pubspec.yaml b/apps/mobile/packages/features/client/authentication/pubspec.yaml index a70cf83a..0cc085d8 100644 --- a/apps/mobile/packages/features/client/authentication/pubspec.yaml +++ b/apps/mobile/packages/features/client/authentication/pubspec.yaml @@ -27,6 +27,8 @@ dependencies: path: ../../../data_connect krow_domain: path: ../../../domain + krow_core: + path: ../../../core dev_dependencies: flutter_test: