import Link from 'next/link';
import { publicPost } from '@/lib/session';
import { AuthCard } from '@/components/AuthCard';
import { ResetForm } from '@/components/AccountForms';

export const metadata = { title: 'Choose a new password' };

export default async function Reset({ searchParams }: { searchParams: Promise<{ token?: string }> }) {
  const { token = '' } = await searchParams;
  const check = token ? (await publicPost<{ valid: boolean; otpRequired?: boolean }>('/auth/password/reset/check', { token })).data : { valid: false, otpRequired: false };
  const valid = check.valid;
  return (
    <AuthCard title="Choose a new password">
      {valid ? (
        <ResetForm token={token} otpRequired={check.otpRequired} />
      ) : (
        <div className="space-y-4 text-sm">
          <p className="text-danger">This link is invalid, already used or expired.</p>
          <Link href="/account/forgot-password/" className="btn btn-primary w-full">
            Request a new link
          </Link>
        </div>
      )}
    </AuthCard>
  );
}
