diff --git a/src/components/trade/header/user-menu.tsx b/src/components/trade/header/user-menu.tsx
index dd7e8b57..6cb6d57a 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();
@@ -50,22 +52,22 @@ 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);
useAutoRegisterReferral();
+ const { open: openPointsModal } = usePointsModalActions();
useEffect(() => {
setMounted(true);
}, []);
- function handleLogout() {
+ async function handleLogout() {
if (authenticated) {
- logout();
- } else {
- disconnect();
+ await logout();
}
+ disconnect();
}
if (!mounted || !ready || isConnecting) {
@@ -104,6 +106,12 @@ export function UserMenu() {
Add funds
+
+
+
+ Referrals
+
+
diff --git a/src/hooks/use-referral.ts b/src/hooks/use-referral.ts
index 4930bcde..e6d1035d 100644
--- a/src/hooks/use-referral.ts
+++ b/src/hooks/use-referral.ts
@@ -33,14 +33,16 @@ export function useReferralCapture() {
export function useAutoRegisterReferral() {
const { address, isConnected } = useConnection();
- const { user } = usePrivy();
- const registeredRef = useRef(false);
+ const { user, authenticated } = usePrivy();
+ const registeredAddressRef = useRef(null);
useEffect(() => {
async function autoRegister() {
- if (!isConnected || !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,12 +69,12 @@ export function useAutoRegisterReferral() {
}
} catch (error) {
console.error("Auto-registration failed:", error);
- registeredRef.current = false;
+ registeredAddressRef.current = null;
}
}
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 ""