"use client";
import { post } from "@/api/request";
import { useSearchParams } from "next/navigation";
import React, { useEffect, useState } from "react";
import { CheckCircle, XCircle, Loader2 } from "lucide-react";
export default function Activate() {
const searchParams = useSearchParams();
const t = searchParams.get("t") || '';
const type = searchParams.get("type");
if (type === "confirm_email") {
return ;
}
return <>>;
}
/**
* Email verification confirmation component
* @param {string} t - Verification token
*/
function ConfirmEmail({ t }: { t: string }) {
const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading');
const [message, setMessage] = useState('');
useEffect(() => {
if (!t) {
setStatus('error');
setMessage('Invalid verification token');
return;
}
post(`/auth/activate?t=${t}`)
.then((res) => {
setStatus('success');
setMessage('Your registration has been verified. Please return to the official website to log in.');
})
.catch((err) => {
setStatus('error');
setMessage('Verification failed. Please try again.');
});
}, [t]);
const renderContent = () => {
switch (status) {
case 'loading':
return (
);
case 'success':
return (
Verification Successful
{message}
);
case 'error':
return (
Verification Failed
{message}
);
}
};
return (
{status === 'loading' && (
Email Verification
Please wait while we verify your email
)}
{renderContent()}
);
}