가상매매 화면 멀티 레이아웃 수정
This commit is contained in:
@@ -151,6 +151,10 @@ interface TradingChartProps {
|
||||
crosshairInfoVisible?: boolean;
|
||||
/** 외부 캔들 데이터 fetch 중 (실시간 차트 초기 로딩) */
|
||||
dataLoading?: boolean;
|
||||
/** 마운트 시 캔들 pane 전체보기(하단 보조지표 pane 숨김) — 가상매매 카드 등 */
|
||||
defaultCandleOnly?: boolean;
|
||||
/** 캔들 pane 좌하단 전체보기/복원 버튼 (기본 true) */
|
||||
showCandlePaneControls?: boolean;
|
||||
}
|
||||
|
||||
const TradingChart: React.FC<TradingChartProps> = ({
|
||||
@@ -188,6 +192,8 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
showPaneLegend = true,
|
||||
crosshairInfoVisible = true,
|
||||
dataLoading = false,
|
||||
defaultCandleOnly = false,
|
||||
showCandlePaneControls = true,
|
||||
}) => {
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
const wrapperRef = useRef<HTMLDivElement>(null); // 스크롤 래퍼
|
||||
@@ -259,7 +265,8 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
/** 초기 reloadAll 완료 전 — pane 구분선·부분 레이아웃 노출 방지 */
|
||||
const [chartPaintReady, setChartPaintReady] = useState(false);
|
||||
/** 캔들 pane 전체보기 (오버레이 지표 유지, 하단 보조지표 pane 숨김) */
|
||||
const [candleOnlyMode, setCandleOnlyMode] = useState(false);
|
||||
const candleOnlyLocked = defaultCandleOnly;
|
||||
const [candleOnlyMode, setCandleOnlyMode] = useState(defaultCandleOnly);
|
||||
const paneDragRef = useRef<((id: string, e: React.PointerEvent) => void) | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -289,8 +296,9 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
}, [chartMgr]);
|
||||
|
||||
const toggleCandleOnly = useCallback(() => {
|
||||
if (candleOnlyLocked) return;
|
||||
setCandleOnlyMode(v => !v);
|
||||
}, []);
|
||||
}, [candleOnlyLocked]);
|
||||
|
||||
useEffect(() => { toggleCandleOnlyRef.current = toggleCandleOnly; }, [toggleCandleOnly]);
|
||||
useEffect(() => { candleOnlyModeRef.current = candleOnlyMode; }, [candleOnlyMode]);
|
||||
@@ -970,7 +978,7 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
|
||||
if (m.isClickOnMainSeries(chartX, chartY)) {
|
||||
onSeriesDoubleClickRef.current?.('__main__', { x: e.clientX, y: e.clientY });
|
||||
} else {
|
||||
} else if (!candleOnlyLocked) {
|
||||
toggleCandleOnlyRef.current();
|
||||
}
|
||||
};
|
||||
@@ -1577,7 +1585,7 @@ const TradingChart: React.FC<TradingChartProps> = ({
|
||||
/>
|
||||
)}
|
||||
{/* PaneLegend: containerRef 를 상태에 저장해 React 렌더와 동기화 */}
|
||||
{chartMgr && (
|
||||
{chartMgr && showCandlePaneControls && !candleOnlyLocked && (
|
||||
<CandlePaneControlsPortal
|
||||
manager={chartMgr}
|
||||
getContainer={() => containerRef.current}
|
||||
|
||||
Reference in New Issue
Block a user