From c8467c29da8c10f1eedcbd3bf1805a368e092863 Mon Sep 17 00:00:00 2001 From: alex luu Date: Fri, 10 Apr 2026 11:39:06 -0400 Subject: [PATCH 1/3] fix: fix ui based off of feedback --- src/components/trade/header/user-menu.tsx | 9 +++++++++ src/hooks/use-referral.ts | 6 +++--- src/locales/ar/messages.po | 4 ++++ src/locales/en/messages.po | 4 ++++ src/locales/es/messages.po | 4 ++++ src/locales/fr/messages.po | 4 ++++ src/locales/hi/messages.po | 4 ++++ src/locales/zh/messages.po | 4 ++++ 8 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/components/trade/header/user-menu.tsx b/src/components/trade/header/user-menu.tsx index dd7e8b57..99278bf4 100644 --- a/src/components/trade/header/user-menu.tsx +++ b/src/components/trade/header/user-menu.tsx @@ -6,6 +6,7 @@ import { PlusCircleIcon, SignOutIcon, SpinnerGapIcon, + TrophyIcon, WalletIcon, } from "@phosphor-icons/react"; import { useLogin, useLogout, usePrivy } from "@privy-io/react-auth"; @@ -22,6 +23,7 @@ import { import { useCopyToClipboard } from "@/hooks/ui/use-copy-to-clipboard"; import { useAutoRegisterReferral } from "@/hooks/use-referral"; import { shortenAddress } from "@/lib/format"; +import { usePointsModalActions } from "@/stores/use-global-modal-store"; function CopyAddressMenuItem({ address }: { address: string }) { const { copied, copy } = useCopyToClipboard(); @@ -55,6 +57,7 @@ export function UserMenu() { const [mounted, setMounted] = useState(false); useAutoRegisterReferral(); + const { open: openPointsModal } = usePointsModalActions(); useEffect(() => { setMounted(true); @@ -104,6 +107,12 @@ export function UserMenu() { Add funds + + + + Referrals + + diff --git a/src/hooks/use-referral.ts b/src/hooks/use-referral.ts index 4930bcde..512c0eb0 100644 --- a/src/hooks/use-referral.ts +++ b/src/hooks/use-referral.ts @@ -33,12 +33,12 @@ export function useReferralCapture() { export function useAutoRegisterReferral() { const { address, isConnected } = useConnection(); - const { user } = usePrivy(); + const { user, authenticated } = usePrivy(); const registeredRef = useRef(false); useEffect(() => { async function autoRegister() { - if (!isConnected || !address || registeredRef.current) return; + if (!isConnected || !authenticated || !address || registeredRef.current) return; registeredRef.current = true; @@ -72,7 +72,7 @@ export function useAutoRegisterReferral() { } autoRegister(); - }, [isConnected, address, user?.id]); + }, [isConnected, authenticated, address, user?.id]); } export { getStoredReferral }; diff --git a/src/locales/ar/messages.po b/src/locales/ar/messages.po index 80d948cf..d47646af 100644 --- a/src/locales/ar/messages.po +++ b/src/locales/ar/messages.po @@ -1467,6 +1467,10 @@ msgstr "" msgid "Referral Code (optional)" msgstr "" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "" diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index 09737820..fd7a0bd8 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -1476,6 +1476,10 @@ msgstr "Refer friends" msgid "Referral Code (optional)" msgstr "Referral Code (optional)" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "Referrals" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "Register Another" diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index b43e0be9..90885348 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -1467,6 +1467,10 @@ msgstr "" msgid "Referral Code (optional)" msgstr "" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "" diff --git a/src/locales/fr/messages.po b/src/locales/fr/messages.po index 5c94e71f..d600be9e 100644 --- a/src/locales/fr/messages.po +++ b/src/locales/fr/messages.po @@ -1467,6 +1467,10 @@ msgstr "" msgid "Referral Code (optional)" msgstr "" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "" diff --git a/src/locales/hi/messages.po b/src/locales/hi/messages.po index fed857b9..0196085c 100644 --- a/src/locales/hi/messages.po +++ b/src/locales/hi/messages.po @@ -1467,6 +1467,10 @@ msgstr "" msgid "Referral Code (optional)" msgstr "" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "" diff --git a/src/locales/zh/messages.po b/src/locales/zh/messages.po index e45d55bb..f3b7280a 100644 --- a/src/locales/zh/messages.po +++ b/src/locales/zh/messages.po @@ -1467,6 +1467,10 @@ msgstr "" msgid "Referral Code (optional)" msgstr "" +#: src/components/trade/header/user-menu.tsx +msgid "Referrals" +msgstr "" + #: src/components/pages/builder-page.tsx #~ msgid "Register Another" #~ msgstr "" From 19628b462787bdb7637dd889404a3298743636da Mon Sep 17 00:00:00 2001 From: alex luu Date: Fri, 10 Apr 2026 11:52:47 -0400 Subject: [PATCH 2/3] fix: address feedback --- src/components/trade/header/user-menu.tsx | 5 ++--- src/hooks/use-referral.ts | 10 ++++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/trade/header/user-menu.tsx b/src/components/trade/header/user-menu.tsx index 99278bf4..22298f6a 100644 --- a/src/components/trade/header/user-menu.tsx +++ b/src/components/trade/header/user-menu.tsx @@ -52,7 +52,7 @@ export function UserMenu() { const { authenticated, ready } = usePrivy(); const { login } = useLogin(); const { logout } = useLogout(); - const { disconnect } = useDisconnect(); + const { mutate: disconnect } = useDisconnect(); const { data: ensName } = useEnsName({ address }); const [mounted, setMounted] = useState(false); @@ -66,9 +66,8 @@ export function UserMenu() { function handleLogout() { if (authenticated) { logout(); - } else { - disconnect(); } + disconnect(); } if (!mounted || !ready || isConnecting) { diff --git a/src/hooks/use-referral.ts b/src/hooks/use-referral.ts index 512c0eb0..e6d1035d 100644 --- a/src/hooks/use-referral.ts +++ b/src/hooks/use-referral.ts @@ -34,13 +34,15 @@ export function useReferralCapture() { export function useAutoRegisterReferral() { const { address, isConnected } = useConnection(); const { user, authenticated } = usePrivy(); - const registeredRef = useRef(false); + const registeredAddressRef = useRef(null); useEffect(() => { async function autoRegister() { - if (!isConnected || !authenticated || !address || registeredRef.current) return; + if (!isConnected || !authenticated || !address) return; + if (authenticated && !user?.id) return; + if (registeredAddressRef.current === address) return; - registeredRef.current = true; + registeredAddressRef.current = address; try { const res = await fetch(`${API_URL}/user_points?user_address=${address}`); @@ -67,7 +69,7 @@ export function useAutoRegisterReferral() { } } catch (error) { console.error("Auto-registration failed:", error); - registeredRef.current = false; + registeredAddressRef.current = null; } } From d16ccf596d807c92f0837d42f956c48c371aec93 Mon Sep 17 00:00:00 2001 From: alex luu Date: Fri, 10 Apr 2026 12:00:25 -0400 Subject: [PATCH 3/3] fix: address feedback --- src/components/trade/header/user-menu.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/trade/header/user-menu.tsx b/src/components/trade/header/user-menu.tsx index 22298f6a..6cb6d57a 100644 --- a/src/components/trade/header/user-menu.tsx +++ b/src/components/trade/header/user-menu.tsx @@ -63,9 +63,9 @@ export function UserMenu() { setMounted(true); }, []); - function handleLogout() { + async function handleLogout() { if (authenticated) { - logout(); + await logout(); } disconnect(); }