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" : "进入产品"}
+
+
+ >
+ )}