From a2a971f984c817958f45b345ad3aff539cf5ebd7 Mon Sep 17 00:00:00 2001 From: Jay Gaikar Date: Mon, 18 May 2026 21:23:15 +0530 Subject: [PATCH] fix: prevent Share Profile button flash before settings load --- src/components/DashboardHeader.tsx | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/components/DashboardHeader.tsx b/src/components/DashboardHeader.tsx index c7ba314..f226d02 100644 --- a/src/components/DashboardHeader.tsx +++ b/src/components/DashboardHeader.tsx @@ -7,26 +7,28 @@ import SignOutButton from "@/components/SignOutButton"; import ThemeToggle from "@/components/ThemeToggle"; import UserAvatar from "@/components/UserAvatar"; -interface UserSettings { - is_public: boolean; -} - export default function DashboardHeader() { const { data: session } = useSession(); - const [settings, setSettings] = useState(null); + const [isPublic, setIsPublic] = useState(null); useEffect(() => { - if (!session) return; + if (!session) { + setIsPublic(null); + return; + } async function loadSettings() { try { const res = await fetch("/api/user/settings"); if (res.ok) { const data = await res.json(); - setSettings(data); + setIsPublic(data.is_public === true); + } else { + setIsPublic(false); } } catch (error) { console.error("Failed to load settings:", error); + setIsPublic(false); } } @@ -46,7 +48,7 @@ export default function DashboardHeader() {
- {settings?.is_public && session?.githubLogin && ( + {isPublic === true && session?.githubLogin && (