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

24 lines
810 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";
}