|
|
@ -2,12 +2,16 @@ |
|
|
|
|
|
|
|
|
import { useState, useEffect } from 'react' |
|
|
import { useState, useEffect } from 'react' |
|
|
import httpBrowserClient from '@/lib/httpBrowserClient' |
|
|
import httpBrowserClient from '@/lib/httpBrowserClient' |
|
|
|
|
|
import { useSession } from 'next-auth/react' |
|
|
|
|
|
import { redirect } from 'next/navigation' |
|
|
|
|
|
|
|
|
export default function CheckoutPage({ params }) { |
|
|
export default function CheckoutPage({ params }) { |
|
|
const [error, setError] = useState<string | null>(null) |
|
|
const [error, setError] = useState<string | null>(null) |
|
|
|
|
|
|
|
|
const planName = params.planName as string |
|
|
const planName = params.planName as string |
|
|
|
|
|
|
|
|
|
|
|
const { data: session } = useSession() |
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
const initiateCheckout = async () => { |
|
|
const initiateCheckout = async () => { |
|
|
try { |
|
|
try { |
|
|
@ -25,6 +29,10 @@ export default function CheckoutPage({ params }) { |
|
|
initiateCheckout() |
|
|
initiateCheckout() |
|
|
}, [planName]) |
|
|
}, [planName]) |
|
|
|
|
|
|
|
|
|
|
|
if (!session?.user) { |
|
|
|
|
|
return redirect(`/login?redirect=${window.location.href}`) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (error) { |
|
|
if (error) { |
|
|
return <div className='text-red-500'>{error}</div> |
|
|
return <div className='text-red-500'>{error}</div> |
|
|
} |
|
|
} |
|
|
|