Improve auth flows

This commit is contained in:
augmentedpotato
2026-04-02 09:06:24 -06:00
parent 82935303ba
commit 4bd98ef06f
6 changed files with 300 additions and 39 deletions

View File

@@ -1,13 +1,25 @@
"use client";
import dynamic from "next/dynamic";
import Link from "next/link";
import { useState } from "react";
import { useRouter } from "next/navigation";
import { useRouter, useSearchParams } from "next/navigation";
import { useAuth } from "@/context/AuthContext";
export default function RegisterPage() {
function resolveNextPath(candidate) {
if (!candidate || !candidate.startsWith("/")) {
return "/";
}
if (candidate.startsWith("//") || candidate.startsWith("/login") || candidate.startsWith("/register")) {
return "/";
}
return candidate;
}
function RegisterPage() {
const {register} = useAuth();
const router = useRouter();
const searchParams = useSearchParams();
const [form, setForm] = useState({
fullName: "",
@@ -41,7 +53,7 @@ export default function RegisterPage() {
phone: form.phone,
password: form.password,
});
router.push("/");
router.push(resolveNextPath(searchParams.get("next")));
}
catch (err) {
@@ -144,9 +156,13 @@ export default function RegisterPage() {
<p className="auth-switch">
Already have an account?{" "}
<Link href="/login" className="auth-switch-link">Log in here</Link>
<Link href={searchParams.get("next") ? `/login?next=${encodeURIComponent(searchParams.get("next"))}` : "/login"} className="auth-switch-link">Log in here</Link>
</p>
</div>
</main>
);
}
export default dynamic(() => Promise.resolve(RegisterPage), {
ssr: false,
});