Files
goldenChart/frontend/src/hooks/useChartRealtimeData.ts
T
2026-05-23 15:11:48 +09:00

36 lines
1.0 KiB
TypeScript

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 };