107 lines
2.8 KiB
TypeScript
107 lines
2.8 KiB
TypeScript
/*
|
|
* File: navigationUtils.ts
|
|
* Description: Navigation utilities for Auth module
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|
|
|
|
import { AuthNavigationProp } from './navigationTypes';
|
|
|
|
/**
|
|
* AuthNavigationUtils - Utility functions for Auth module navigation
|
|
*
|
|
* This module provides helper functions for common navigation patterns
|
|
* within the Auth module, ensuring consistent navigation behavior.
|
|
*/
|
|
|
|
/**
|
|
* Navigate to Login screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const navigateToLogin = (navigation: AuthNavigationProp): void => {
|
|
navigation.navigate('Login');
|
|
};
|
|
|
|
/**
|
|
* Navigate to Sign Up screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const navigateToSignUp = (navigation: AuthNavigationProp): void => {
|
|
navigation.navigate('SignUp');
|
|
};
|
|
|
|
/**
|
|
* Go back to previous screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const goBack = (navigation: AuthNavigationProp): void => {
|
|
if (navigation.canGoBack()) {
|
|
navigation.goBack();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Reset navigation stack to Login screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const resetToLogin = (navigation: AuthNavigationProp): void => {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: 'Login' }],
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Reset navigation stack to Sign Up screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const resetToSignUp = (navigation: AuthNavigationProp): void => {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: 'SignUp' }],
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Replace current screen with Login screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const replaceWithLogin = (navigation: AuthNavigationProp): void => {
|
|
navigation.replace('Login');
|
|
};
|
|
|
|
/**
|
|
* Replace current screen with Sign Up screen
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const replaceWithSignUp = (navigation: AuthNavigationProp): void => {
|
|
navigation.replace('SignUp');
|
|
};
|
|
|
|
/**
|
|
* Navigate to Sign Up screen and clear back stack
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const navigateToSignUpAndClearStack = (navigation: AuthNavigationProp): void => {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: 'SignUp' }],
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Navigate to Login screen and clear back stack
|
|
* @param navigation - Navigation prop from React Navigation
|
|
*/
|
|
export const navigateToLoginAndClearStack = (navigation: AuthNavigationProp): void => {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: 'Login' }],
|
|
});
|
|
};
|
|
|
|
/*
|
|
* End of File: navigationUtils.ts
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|