fix: 初始化刷新接口需等待获取云端数据之后

This commit is contained in:
hzm
2026-02-28 19:55:38 +08:00
parent 1256b807a9
commit 5ab0ad45c2

View File

@@ -1840,14 +1840,26 @@ export default function HomePage() {
};
useEffect(() => {
let cancelled = false;
const init = async () => {
try {
// 已登录用户:不在此处调用 refreshAll等 fetchCloudConfig 完成后由 applyCloudConfig 统一刷新
let shouldRefreshFromLocal = true;
if (isSupabaseConfigured) {
const { data, error } = await supabase.auth.getSession();
if (!cancelled && !error && data?.session?.user) {
shouldRefreshFromLocal = false;
}
}
if (cancelled) return;
const saved = JSON.parse(localStorage.getItem('funds') || '[]');
if (Array.isArray(saved) && saved.length) {
const deduped = dedupeByCode(saved);
setFunds(deduped);
storageHelper.setItem('funds', JSON.stringify(deduped));
const codes = Array.from(new Set(deduped.map((f) => f.code)));
if (codes.length) refreshAll(codes);
if (codes.length && shouldRefreshFromLocal) refreshAll(codes);
}
const savedMs = parseInt(localStorage.getItem('refreshMs') || '30000', 10);
if (Number.isFinite(savedMs) && savedMs >= 5000) {
@@ -1903,7 +1915,10 @@ export default function HomePage() {
setTheme(savedTheme);
}
} catch { }
}, []);
};
init();
return () => { cancelled = true; };
}, [isSupabaseConfigured]);
// 主题同步到 document 并持久化
useEffect(() => {