전략편집기 시간봉 선택오류 수정
This commit is contained in:
@@ -167,6 +167,8 @@ interface TradingChartProps {
|
||||
crosshairInfoVisible?: boolean;
|
||||
/** 외부 캔들 데이터 fetch 중 (실시간 차트 초기 로딩) */
|
||||
dataLoading?: boolean;
|
||||
/** chartPaintReady 변경 알림 (워크스페이스 전체 로딩 오버레이용) */
|
||||
onChartPaintReadyChange?: (ready: boolean) => void;
|
||||
/** 마운트 시 캔들 pane 전체보기(하단 보조지표 pane 숨김) — 가상매매 카드 등 */
|
||||
defaultCandleOnly?: boolean;
|
||||
/** 캔들 pane 좌하단 전체보기/복원 버튼 (기본 true) */
|
||||
@@ -236,6 +238,7 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
showCandleOverlayControls = false,
|
||||
crosshairInfoVisible = true,
|
||||
dataLoading = false,
|
||||
onChartPaintReadyChange,
|
||||
defaultCandleOnly = false,
|
||||
showCandlePaneControls = true,
|
||||
candleOverlayToggles,
|
||||
@@ -399,6 +402,14 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
chartVisibleRef.current = chartVisible;
|
||||
}, [chartVisible]);
|
||||
|
||||
useEffect(() => {
|
||||
if (dataLoading) setChartPaintReady(false);
|
||||
}, [dataLoading]);
|
||||
|
||||
useEffect(() => {
|
||||
onChartPaintReadyChange?.(chartPaintReady && !dataLoading);
|
||||
}, [chartPaintReady, dataLoading, onChartPaintReadyChange]);
|
||||
|
||||
useEffect(() => {
|
||||
const el = containerRef.current;
|
||||
if (!el) return;
|
||||
@@ -976,12 +987,18 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
} while (reloadCoalesceRef.current);
|
||||
} finally {
|
||||
reloadInFlightRef.current = false;
|
||||
if (managerRef.current?.hasMainSeries()) {
|
||||
setChartPaintReady(true);
|
||||
}
|
||||
if (reloadCoalesceRef.current) {
|
||||
reloadCoalesceRef.current = false;
|
||||
queueFullReload();
|
||||
return;
|
||||
}
|
||||
const m = managerRef.current;
|
||||
if (m?.hasMainSeries()) {
|
||||
const expected = countExpectedVisibleIndicators(indicatorsRef.current);
|
||||
const loaded = m.getLoadedIndicatorCount();
|
||||
if (expected === 0 || loaded >= expected) {
|
||||
setChartPaintReady(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [normalizeChartViewport, onCandlesReady, onDataLoaded, displayTimezone, timeframe, market, queueFullReload, queueIndicatorRecovery]);
|
||||
|
||||
Reference in New Issue
Block a user