Improve public pages
This commit is contained in:
32
frontend/src/hooks/usePilotDetection.ts
Normal file
32
frontend/src/hooks/usePilotDetection.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Custom hook to detect pilot program participation via URL parameter
|
||||
* Checks for ?pilot=true in URL and provides pilot status and coupon code
|
||||
*/
|
||||
import { useMemo } from 'react';
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
interface PilotDetectionResult {
|
||||
isPilot: boolean;
|
||||
couponCode: string | null;
|
||||
trialMonths: number;
|
||||
trialDays: number;
|
||||
}
|
||||
|
||||
export const usePilotDetection = (): PilotDetectionResult => {
|
||||
const location = useLocation();
|
||||
|
||||
const pilotInfo = useMemo(() => {
|
||||
const searchParams = new URLSearchParams(location.search);
|
||||
const pilotParam = searchParams.get('pilot');
|
||||
const isPilot = pilotParam === 'true';
|
||||
|
||||
return {
|
||||
isPilot,
|
||||
couponCode: isPilot ? 'PILOT2025' : null,
|
||||
trialMonths: isPilot ? 3 : 0,
|
||||
trialDays: isPilot ? 90 : 14,
|
||||
};
|
||||
}, [location.search]);
|
||||
|
||||
return pilotInfo;
|
||||
};
|
||||
Reference in New Issue
Block a user