import type { Timeframe, OHLCVBar } from '../types'; import { useUpbitData, type WsStatus } from './useUpbitData'; import { useStompChartData } from './useStompChartData'; export type ChartRealtimeSource = 'BACKEND_STOMP' | 'UPBIT_DIRECT'; interface Options { onTickUpdate: (bar: OHLCVBar) => void; onNewCandle: (bar: OHLCVBar) => void; enabled?: boolean; deepObvHistory?: boolean; source?: ChartRealtimeSource; } export function useChartRealtimeData( market: string, timeframe: Timeframe, opts: Options, ) { const useStomp = opts.source !== 'UPBIT_DIRECT'; const stomp = useStompChartData(market, timeframe, { onTickUpdate: opts.onTickUpdate, onNewCandle: opts.onNewCandle, enabled: opts.enabled !== false && useStomp, }); const upbit = useUpbitData(market, timeframe, { onTickUpdate: opts.onTickUpdate, onNewCandle: opts.onNewCandle, enabled: opts.enabled !== false && !useStomp, deepObvHistory: opts.deepObvHistory, }); return useStomp ? stomp : upbit; } export type { WsStatus };