모바일 로드 오류 수정
This commit is contained in:
@@ -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;
|
||||
});
|
||||
}, []);
|
||||
|
||||
Reference in New Issue
Block a user