mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-04-19 14:46:52 +00:00
feat: implement AuthLayout component and streamline OTP verification forms with enhanced messaging
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 1m49s
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 1m49s
This commit is contained in:
parent
3703b3e8fc
commit
a4ffb1e34a
22
app/(auth)/auth/layout.tsx
Normal file
22
app/(auth)/auth/layout.tsx
Normal file
@ -0,0 +1,22 @@
|
||||
import Image from "next/image";
|
||||
|
||||
export default function AuthLayout({
|
||||
children,
|
||||
}: { children: React.ReactNode }) {
|
||||
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-sarLinkOrange dark:text-gray-400">
|
||||
SAR Link Portal
|
||||
</h4>
|
||||
<p className="text-gray-400">
|
||||
Pay for your devices and track your bills.
|
||||
</p>
|
||||
</div>
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
@ -2,18 +2,5 @@ import LoginForm from "@/components/auth/login-form";
|
||||
import Image from "next/image";
|
||||
|
||||
export default async function LoginPage() {
|
||||
return (
|
||||
<div className="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>
|
||||
<LoginForm />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
return <LoginForm />;
|
||||
}
|
||||
|
@ -13,25 +13,5 @@ export default async function SignupPage({
|
||||
return redirect("/auth/login");
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="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
|
||||
priority
|
||||
alt="Sar Link Logo"
|
||||
src="/logo.png"
|
||||
width={100}
|
||||
height={100}
|
||||
style={{ width: "auto", height: "auto" }}
|
||||
/>
|
||||
<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>
|
||||
<SignUpForm />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
return <SignUpForm />;
|
||||
}
|
||||
|
@ -26,18 +26,5 @@ export default async function VerifyRegistrationOTP({
|
||||
return <ClientErrorMessage message={error.message} />;
|
||||
}
|
||||
if (response.otp_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>
|
||||
);
|
||||
return <VerifyRegistrationOTPForm phone_number={phone_number} />;
|
||||
}
|
||||
|
@ -17,18 +17,5 @@ export default async function VerifyOTP({
|
||||
phone_number,
|
||||
);
|
||||
|
||||
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>
|
||||
<VerifyOTPForm phone_number={phone_number} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
return <VerifyOTPForm phone_number={phone_number} />;
|
||||
}
|
||||
|
@ -61,6 +61,9 @@ export default function VerifyOTPForm({
|
||||
>
|
||||
<div className="grid pb-4 pt-4 gap-4 px-4">
|
||||
<div className="flex flex-col gap-4">
|
||||
<p className="text-center text-sm text-sarLinkOrange">
|
||||
Login OTP Sent to {phone_number}
|
||||
</p>
|
||||
<Label htmlFor="otp-number" className="sr-only text-gray-500">
|
||||
Enter the OTP
|
||||
</Label>
|
||||
@ -70,7 +73,7 @@ export default function VerifyOTPForm({
|
||||
{...register("pin")}
|
||||
type="text"
|
||||
placeholder="Enter OTP"
|
||||
className="bg-white dark:bg-sarLinkOrange/10"
|
||||
className="bg-white dark:bg-black"
|
||||
/>
|
||||
{errors.pin && (
|
||||
<p className="text-red-500 text-sm">{errors.pin.message}</p>
|
||||
@ -81,9 +84,9 @@ export default function VerifyOTPForm({
|
||||
</Button>
|
||||
</div>
|
||||
<div className="mb-4 text-center text-sm">
|
||||
Go back to{" "}
|
||||
Change{" "}
|
||||
<Link href="signin" className="underline">
|
||||
login
|
||||
phone number
|
||||
</Link>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -36,8 +36,7 @@ export default function VerifyRegistrationOTPForm({
|
||||
</p>
|
||||
) : (
|
||||
<p className="bg-sarLinkOrange/50 border border-yellow-900/50 dark:border-sarLinkOrange/50 rounded p-2 text-center text-sm text-gray-900 dark:text-gray-300">
|
||||
Please enter the OTP sent to your mobile number [{phone_number}]
|
||||
to verify and complete your registration.
|
||||
Account verification OTP sent to [{phone_number}]
|
||||
</p>
|
||||
)}
|
||||
|
||||
@ -84,12 +83,14 @@ export default function VerifyRegistrationOTPForm({
|
||||
)}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="mb-4 text-center text-sm">
|
||||
Go back to{" "}
|
||||
<Link href="signin" className="underline">
|
||||
login
|
||||
</Link>
|
||||
</div>
|
||||
{state.status === "verify_success" && (
|
||||
<div className="mb-4 text-center text-sm">
|
||||
Go to{" "}
|
||||
<Link href="signin" className="underline">
|
||||
login
|
||||
</Link>
|
||||
</div>
|
||||
)}
|
||||
</form>
|
||||
);
|
||||
}
|
||||
|
@ -199,7 +199,9 @@ export async function VerifyRegistrationOTP(
|
||||
// }
|
||||
}
|
||||
return {
|
||||
message: "Your account could not be verified. Please contact support.",
|
||||
message:
|
||||
data.message ||
|
||||
"Your account could not be verified. Please contact support.",
|
||||
status: "verify_error",
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user