58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
import {
|
|
ADMIN_EVENT_CREATE_PATH,
|
|
ADMIN_WELCOME_BASE_PATH,
|
|
ADMIN_WELCOME_EVENT_PATH,
|
|
ADMIN_WELCOME_SUMMARY_PATH,
|
|
} from '../../constants';
|
|
|
|
type OnboardingRedirectInput = {
|
|
hasEvents: boolean;
|
|
hasActivePackage: boolean;
|
|
selectedPackageId?: number | null;
|
|
pathname: string;
|
|
isWelcomePath: boolean;
|
|
isBillingPath: boolean;
|
|
isOnboardingDismissed?: boolean;
|
|
isOnboardingCompleted?: boolean;
|
|
};
|
|
|
|
export function resolveOnboardingRedirect({
|
|
hasEvents,
|
|
hasActivePackage,
|
|
selectedPackageId,
|
|
pathname,
|
|
isWelcomePath,
|
|
isBillingPath,
|
|
isOnboardingDismissed,
|
|
isOnboardingCompleted,
|
|
}: OnboardingRedirectInput): string | null {
|
|
if (hasEvents) {
|
|
return null;
|
|
}
|
|
|
|
if (isOnboardingDismissed || isOnboardingCompleted) {
|
|
return null;
|
|
}
|
|
|
|
if (isWelcomePath || isBillingPath) {
|
|
return null;
|
|
}
|
|
|
|
if (pathname.startsWith(ADMIN_EVENT_CREATE_PATH)) {
|
|
return null;
|
|
}
|
|
|
|
const shouldContinueSummary = Boolean(selectedPackageId && selectedPackageId > 0);
|
|
const target = hasActivePackage
|
|
? ADMIN_WELCOME_EVENT_PATH
|
|
: shouldContinueSummary
|
|
? ADMIN_WELCOME_SUMMARY_PATH
|
|
: ADMIN_WELCOME_BASE_PATH;
|
|
|
|
if (pathname === target) {
|
|
return null;
|
|
}
|
|
|
|
return target;
|
|
}
|