i701 0b2dcfcc01
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m20s
feat: enhance OTP verification flow with error handling and response checks
2025-04-18 11:57:20 +05:00

42 lines
1.4 KiB
TypeScript

import VerifyRegistrationOTPForm from "@/components/auth/verify-registration-otp-form";
import { checkIdOrPhone } from "@/queries/authentication";
import { tryCatch } from "@/utils/tryCatch";
import Image from "next/image";
import { redirect } from "next/navigation";
import React from "react";
export default async function VerifyRegistrationOTP({
searchParams,
}: {
searchParams: Promise<{ phone_number: string }>;
}) {
const phone_number = (await searchParams).phone_number;
if (!phone_number) {
return redirect("/login");
}
console.log(
"phone number from server page params (verify otp page)",
phone_number,
);
const [error, response] = await tryCatch(checkIdOrPhone({ phone_number }));
if (error) {
console.log("Error in checkIdOrPhone", error);
return redirect("/auth/signin");
}
if (response.verified || !response.verified) redirect("/auth/signin");
return (
<div className="bg-gray-100 dark:bg-black w-full h-screen flex items-center justify-center font-sans">
<div className="flex flex-col items-center justify-center w-full h-full ">
<Image alt="Sar Link Logo" src="/logo.png" width={100} height={100} />
<div className="mt-4 flex flex-col items-center justify-center">
<h4 className="font-bold text-xl text-gray-600">SAR Link Portal</h4>
<p className="text-gray-500">
Pay for your devices and track your bills.
</p>
</div>
<VerifyRegistrationOTPForm phone_number={phone_number} />
</div>
</div>
);
}