429 에러 수정
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
import { API_BASE } from '../utils/backendApi';
|
||||
import { UPBIT_API } from '../utils/upbitApi';
|
||||
import { fetchTickersThrottled } from '../utils/upbitTickerFetch';
|
||||
import { useIsCompactDevice } from '../hooks/useMediaQuery';
|
||||
import { safeToFixed } from '../utils/safeFormat';
|
||||
|
||||
// ─── Types ───────────────────────────────────────────────────────────────────
|
||||
@@ -25,7 +26,8 @@ interface TickerInfo {
|
||||
}
|
||||
|
||||
// ─── Constants ───────────────────────────────────────────────────────────────
|
||||
const TICKER_TTL = 3000; // 3초마다 시세 갱신
|
||||
const TICKER_TTL_DESKTOP = 5000;
|
||||
const TICKER_TTL_COMPACT = 25_000;
|
||||
|
||||
function formatVol(vol: number | string | null | undefined): string {
|
||||
const v = Number(vol);
|
||||
@@ -77,6 +79,8 @@ export const MarketSearchPanel: React.FC<MarketSearchPanelProps> = ({
|
||||
actionMode = 'favorite', onAdd, addedMarkets, maxTargetsReached = false,
|
||||
}) => {
|
||||
const embedded = variant === 'embedded';
|
||||
const isCompact = useIsCompactDevice();
|
||||
const tickerTtl = isCompact ? TICKER_TTL_COMPACT : TICKER_TTL_DESKTOP;
|
||||
const [markets, setMarkets] = useState<MarketInfo[]>([]);
|
||||
const [tickers, setTickers] = useState<Record<string, TickerInfo>>({});
|
||||
const [internalQuery, setInternalQuery] = useState(initialQuery);
|
||||
@@ -164,9 +168,9 @@ export const MarketSearchPanel: React.FC<MarketSearchPanelProps> = ({
|
||||
useEffect(() => {
|
||||
if (markets.length === 0) return;
|
||||
fetchTickers();
|
||||
tickerTimer.current = setInterval(fetchTickers, TICKER_TTL);
|
||||
tickerTimer.current = setInterval(fetchTickers, tickerTtl);
|
||||
return () => { if (tickerTimer.current) clearInterval(tickerTimer.current); };
|
||||
}, [markets, fetchTickers]);
|
||||
}, [markets, fetchTickers, tickerTtl]);
|
||||
|
||||
// ── 3. 즐겨찾기 토글 ─────────────────────────────────────────────────────
|
||||
const toggleFav = useCallback(async (market: string, e: React.MouseEvent) => {
|
||||
|
||||
Reference in New Issue
Block a user