FactuGES_ERP/apps/web/src/routes/resolve-initial-onboarding-navigation.ts

32 lines
850 B
TypeScript
Raw Normal View History

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";
}