모바일 로드 오류 수정

This commit is contained in:
Macbook
2026-05-31 23:00:49 +09:00
parent 32d735c172
commit 7f33640b86
4 changed files with 155 additions and 109 deletions
+12 -15
View File
@@ -6,6 +6,7 @@ import {
FAVORITES_CHANGED_EVENT,
} from '../utils/marketStorage';
import { UPBIT_API } from '../utils/upbitApi';
import { fetchTickersThrottled } from '../utils/upbitTickerFetch';
import { safeToFixed } from '../utils/safeFormat';
// ─── Types ───────────────────────────────────────────────────────────────────
@@ -137,24 +138,20 @@ export const MarketSearchPanel: React.FC<MarketSearchPanelProps> = ({
const fetchTickers = useCallback(async () => {
const codes = marketCodesRef.current;
if (!codes) return;
const allCodes = codes.split(',');
const BATCH = 100;
const results: Array<{ market: string } & TickerInfo> = [];
for (let i = 0; i < allCodes.length; i += BATCH) {
const batch = allCodes.slice(i, i + BATCH).join(',');
try {
const res = await fetch(`${UPBIT_API}/ticker?markets=${batch}`);
if (!res.ok) continue;
const data: unknown = await res.json();
if (!Array.isArray(data)) continue;
results.push(...(data as Array<{ market: string } & TickerInfo>));
} catch { /* ignore partial failures */ }
}
const allCodes = codes.split(',').filter(Boolean);
const rawList = await fetchTickersThrottled(allCodes);
setTickers(prev => {
const map: Record<string, TickerInfo> = { ...prev };
for (const t of results) map[t.market] = t;
for (const t of rawList) {
const market = (t.market ?? t.code) as string;
if (!market) continue;
map[market] = {
trade_price: t.trade_price,
signed_change_rate: t.signed_change_rate,
acc_trade_price_24h: t.acc_trade_price_24h,
};
}
return map;
});
}, []);