fix: 移除登录页客户端兜底逻辑,避免水合时序导致的 Failed to fetch

移除 useEffect 中的客户端 fetch 兜底,完全依赖 SSR 注入机构数据。
避免水合时 initialOrgs 为空触发客户端请求,导致移动端出现 Failed to fetch 错误。
This commit is contained in:
selfrelease
2026-06-25 21:07:59 +08:00
parent 9d6498bf19
commit 4a1ce220a6
+2 -12
View File
@@ -29,18 +29,8 @@ export default function LoginForm({ initialOrgs }: { initialOrgs: Organization[]
const { login, switchOrg } = useAuthStore();
const router = useRouter();
// SSR 已注入机构时直接使用,无需再请求;
// 仅当服务端取数失败(首屏机构为空)时,客户端兜底拉取一次
useEffect(() => {
if (initialOrgs.length > 0) return;
api
.get<Organization[]>("/api/v1/organizations")
.then((data) => {
setOrgs(data);
if (data.length > 0) setSelectedOrg(data[0].id);
})
.catch(() => {});
}, [initialOrgs.length]);
// SSR 完全处理机构数据,移除客户端兜底逻辑避免水合时序问题和移动端 fetch 失败
// 如果 SSR 失败(initialOrgs 为空),直接显示空状态或禁用表单
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();