diff --git a/src/components/RegistryList.tsx b/src/components/RegistryList.tsx index 766f305..e7d5aab 100644 --- a/src/components/RegistryList.tsx +++ b/src/components/RegistryList.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from "react"; import type { RegistryItem } from "../lib/types"; -import { fetchWithAuth } from "../utils/auth-client"; +import { fetchWithAuth, getAuthToken } from "../utils/auth-client"; const RegistryList = () => { const [registryItems, setRegistryItems] = useState([]); @@ -9,11 +9,14 @@ const RegistryList = () => { const [claimantName, setClaimantName] = useState(""); const [claimedItems, setClaimedItems] = useState>(new Set()); - useEffect(() => { - fetchRegistryItems(); - }, []); - const fetchRegistryItems = async () => { + // Don't try to fetch if we don't have a token yet + if (!getAuthToken()) { + setError("No authentication token found"); + setLoading(false); + return; + } + setLoading(true); setError(null); try { @@ -26,6 +29,7 @@ const RegistryList = () => { if (data.length === 0) { document.dispatchEvent(new Event("registry-empty")); } + setError(null); } catch (e: any) { setError(e.message); console.error("Failed to fetch registry items:", e); @@ -34,6 +38,20 @@ const RegistryList = () => { } }; + useEffect(() => { + // Only fetch if we have a token + if (getAuthToken()) { + fetchRegistryItems(); + } + + // Add listener for auth success to retry fetching + const handleAuthSuccess = () => { + fetchRegistryItems(); + }; + document.addEventListener("auth-success", handleAuthSuccess); + return () => document.removeEventListener("auth-success", handleAuthSuccess); + }, []); + const handleItemClick = (itemId: string) => { const newClaimedItems = new Set(claimedItems); if (newClaimedItems.has(itemId)) { diff --git a/src/pages/index.astro b/src/pages/index.astro index 9069e40..2126e3c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,7 +1,6 @@ --- import Layout from "../layouts/Layout.astro"; import SignIn from "../components/SignIn.tsx"; -import SignOut from "../components/SignOut.tsx"; --- @@ -75,10 +74,6 @@ import SignOut from "../components/SignOut.tsx"; - -
- -
diff --git a/src/pages/registry/admin.astro b/src/pages/registry/admin.astro index 761418d..0bcfbae 100644 --- a/src/pages/registry/admin.astro +++ b/src/pages/registry/admin.astro @@ -2,7 +2,6 @@ import AdminLayout from "../../layouts/AdminLayout.astro"; import RegistryManager from "../../components/RegistryManager.tsx"; import SignIn from "../../components/SignIn.tsx"; -import SignOut from "../../components/SignOut.tsx"; --- @@ -17,7 +16,6 @@ import SignOut from "../../components/SignOut.tsx"; diff --git a/src/pages/registry/index.astro b/src/pages/registry/index.astro index 4905ba5..281ea4b 100644 --- a/src/pages/registry/index.astro +++ b/src/pages/registry/index.astro @@ -2,7 +2,6 @@ import Layout from "../../layouts/Layout.astro"; import RegistryList from "../../components/RegistryList.tsx"; import SignIn from "../../components/SignIn.tsx"; -import SignOut from "../../components/SignOut.tsx"; --- @@ -22,7 +21,6 @@ import SignOut from "../../components/SignOut.tsx"; diff --git a/src/pages/rsvp.astro b/src/pages/rsvp.astro index 561babb..12a3317 100644 --- a/src/pages/rsvp.astro +++ b/src/pages/rsvp.astro @@ -2,7 +2,6 @@ import Layout from "../layouts/Layout.astro"; import RSVP from "../components/RSVP.tsx"; import SignIn from "../components/SignIn.tsx"; -import SignOut from "../components/SignOut.tsx"; --- @@ -19,7 +18,6 @@ import SignOut from "../components/SignOut.tsx"; diff --git a/src/pages/rsvp/admin.astro b/src/pages/rsvp/admin.astro index 0379884..5c588f4 100644 --- a/src/pages/rsvp/admin.astro +++ b/src/pages/rsvp/admin.astro @@ -2,7 +2,6 @@ import AdminLayout from "../../layouts/AdminLayout.astro"; import RSVPManager from "../../components/RSVPManager.tsx"; import SignIn from "../../components/SignIn.tsx"; -import SignOut from "../../components/SignOut.tsx"; --- @@ -17,7 +16,6 @@ import SignOut from "../../components/SignOut.tsx"; diff --git a/src/pages/rsvp/index.astro b/src/pages/rsvp/index.astro index 6d2d812..b53d691 100644 --- a/src/pages/rsvp/index.astro +++ b/src/pages/rsvp/index.astro @@ -2,7 +2,6 @@ import Layout from "../../layouts/Layout.astro"; import RSVP from "../../components/RSVP.tsx"; import SignIn from "../../components/SignIn.tsx"; -import SignOut from "../../components/SignOut.tsx"; --- @@ -19,7 +18,6 @@ import SignOut from "../../components/SignOut.tsx";