From d04cf584b7a51aebd3ac7fa3ba453c9d8545b8b2 Mon Sep 17 00:00:00 2001 From: hamaguchi <93605959+LeandroHamaguchi@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:13:10 -0400 Subject: [PATCH] fix --- src/app/reset-password/page.tsx | 20 ++++++++++++++++--- src/components/volunteers/VolunteersTable.tsx | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/app/reset-password/page.tsx b/src/app/reset-password/page.tsx index 3a25b60..c2db8f9 100644 --- a/src/app/reset-password/page.tsx +++ b/src/app/reset-password/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { useLayoutEffect, useState, type ReactElement } from "react"; +import { useEffect, useLayoutEffect, useState, type ReactElement } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { @@ -14,7 +14,6 @@ import styles from "@/styles/login.module.css"; type AlertState = { type: "success" | "error"; message: string } | null; export default function Page(): ReactElement { - const supabase = createClient(); const router = useRouter(); const [password, setPassword] = useState(""); @@ -23,6 +22,13 @@ export default function Page(): ReactElement { const [updating, setUpdating] = useState(false); const [bootstrapping, setBootstrapping] = useState(true); const [bootMessage, setBootMessage] = useState("Loading…"); + const [supabase, setSupabase] = useState | null>(null); + + useEffect(() => { + setSupabase(createClient()); + }, []); useLayoutEffect(() => { const code = new URLSearchParams(window.location.search).get("code"); @@ -65,6 +71,14 @@ export default function Page(): ReactElement { ): Promise => { event.preventDefault(); + if (!supabase) { + setAlert({ + type: "error", + message: "Reset session is still loading. Please try again.", + }); + return; + } + if (!password.trim()) { setAlert({ type: "error", message: "Please enter a new password." }); return; @@ -159,7 +173,7 @@ export default function Page(): ReactElement {