Update landing page
This commit is contained in:
71
frontend/src/utils/navigation.ts
Normal file
71
frontend/src/utils/navigation.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* Navigation Utilities
|
||||
*
|
||||
* Centralized functions for generating navigation URLs with proper parameters
|
||||
*/
|
||||
|
||||
import PILOT_CONFIG from '../config/pilot';
|
||||
import type { SubscriptionTier } from '../api';
|
||||
|
||||
/**
|
||||
* Generate register URL with proper query parameters
|
||||
*
|
||||
* @param planTier - Optional subscription plan tier (starter, professional, enterprise)
|
||||
* @returns Register URL with appropriate query parameters
|
||||
*
|
||||
* @example
|
||||
* // In pilot mode with plan selected
|
||||
* getRegisterUrl('starter') // => '/register?pilot=true&plan=starter'
|
||||
*
|
||||
* // In pilot mode without plan
|
||||
* getRegisterUrl() // => '/register?pilot=true'
|
||||
*
|
||||
* // Not in pilot mode with plan
|
||||
* getRegisterUrl('professional') // => '/register?plan=professional'
|
||||
*/
|
||||
export const getRegisterUrl = (planTier?: SubscriptionTier | string): string => {
|
||||
const params = new URLSearchParams();
|
||||
|
||||
// Add pilot parameter if pilot mode is enabled globally
|
||||
if (PILOT_CONFIG.enabled) {
|
||||
params.set('pilot', 'true');
|
||||
}
|
||||
|
||||
// Add plan parameter if specified
|
||||
if (planTier) {
|
||||
params.set('plan', planTier);
|
||||
}
|
||||
|
||||
const queryString = params.toString();
|
||||
return `/register${queryString ? '?' + queryString : ''}`;
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate login URL
|
||||
*/
|
||||
export const getLoginUrl = (): string => {
|
||||
return '/login';
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate demo URL
|
||||
*/
|
||||
export const getDemoUrl = (): string => {
|
||||
return '/demo';
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if current URL has pilot parameter
|
||||
*/
|
||||
export const isPilotUrl = (): boolean => {
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
return searchParams.get('pilot') === 'true';
|
||||
};
|
||||
|
||||
/**
|
||||
* Get plan from current URL
|
||||
*/
|
||||
export const getPlanFromUrl = (): string | null => {
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
return searchParams.get('plan');
|
||||
};
|
||||
Reference in New Issue
Block a user