24 lines
810 B
TypeScript
24 lines
810 B
TypeScript
|
|
export type InitialOnboardingNavigation =
|
||
|
|
| "login"
|
||
|
|
| "application"
|
||
|
|
| "onboarding"
|
||
|
|
| "provision_onboarding"
|
||
|
|
| "onboarding_inconsistent";
|
||
|
|
|
||
|
|
export type InitialOnboardingNavigationInput = {
|
||
|
|
isAuthenticated: boolean;
|
||
|
|
availableCompaniesCount: number;
|
||
|
|
onboardingStatus: "not_provisioned" | "pending" | "completed";
|
||
|
|
};
|
||
|
|
|
||
|
|
/** Decide la navegación sin leer ni modificar persistencia. */
|
||
|
|
export function resolveInitialOnboardingNavigation(
|
||
|
|
input: InitialOnboardingNavigationInput
|
||
|
|
): InitialOnboardingNavigation {
|
||
|
|
if (!input.isAuthenticated) return "login";
|
||
|
|
if (input.availableCompaniesCount > 0) return "application";
|
||
|
|
if (input.onboardingStatus === "pending") return "onboarding";
|
||
|
|
if (input.onboardingStatus === "completed") return "onboarding_inconsistent";
|
||
|
|
return "provision_onboarding";
|
||
|
|
}
|