diff --git a/frontend/components/landing/InstitutionalLandingPage.tsx b/frontend/components/landing/InstitutionalLandingPage.tsx index 0ea546e7..8696a498 100644 --- a/frontend/components/landing/InstitutionalLandingPage.tsx +++ b/frontend/components/landing/InstitutionalLandingPage.tsx @@ -1,5 +1,6 @@ "use client"; +import { useEffect, useState } from "react"; import Link from "next/link"; import { Activity, @@ -16,6 +17,10 @@ import { TrendingUp, } from "lucide-react"; import { I18nProvider, useI18n } from "@/hooks/useI18n"; +import { + getSupabaseBrowserClient, + hasSupabasePublicEnv, +} from "@/lib/supabase/client"; const RAW_MARKET_ROWS_EN = [ ["New York", "91.8°F", "+2.4", "High", "Long Yes"], @@ -74,6 +79,20 @@ const PRO_FEATURES_ZH = [ function InstitutionalLandingScreen() { const { locale, toggleLocale } = useI18n(); const isEn = locale === "en-US"; + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [authChecked, setAuthChecked] = useState(false); + + useEffect(() => { + if (!hasSupabasePublicEnv()) { + setAuthChecked(true); + return; + } + const supabase = getSupabaseBrowserClient(); + supabase.auth.getSession().then(({ data: { session } }) => { + setIsAuthenticated(!!session?.user); + setAuthChecked(true); + }); + }, []); const marketRows = isEn ? RAW_MARKET_ROWS_EN : RAW_MARKET_ROWS_ZH; const coverage = isEn ? COVERAGE_EN : COVERAGE_ZH; @@ -144,25 +163,37 @@ function InstitutionalLandingScreen() { 中文 EN - - {isEn ? "Log in" : "登录"} - - - {isEn ? "Sign Up" : "注册"} - - - {isEn ? "Enter Product" : "进入产品"} - - + {authChecked && isAuthenticated ? ( + + {isEn ? "Enter Product" : "进入产品"} + + + ) : ( + <> + + {isEn ? "Log in" : "登录"} + + + {isEn ? "Sign Up" : "注册"} + + + {isEn ? "Enter Product" : "进入产品"} + + + + )}