/** * START 노드 — 평가 시간봉 다중 선택 (마감봉마다 독립 체크) */ import React from 'react'; import { START_TIMEFRAME_GRAPH_ROWS, STRATEGY_CANDLE_TYPE_OPTIONS, STRATEGY_CANDLE_TYPES, formatStrategyCandleLabel, type StrategyCandleType, } from '../../utils/strategyStartNodes'; interface Props { selected: string[]; onChange: (next: string[]) => void; className?: string; /** 그래프 START: 2행 고정 배치 + 값 라벨(1m…) */ layout?: 'default' | 'graph'; compact?: boolean; } const OPTIONS_BY_VALUE = Object.fromEntries( STRATEGY_CANDLE_TYPE_OPTIONS.map(o => [o.value, o]), ) as Record; function CheckItem({ value, checked, showShortLabel, onToggle, }: { value: StrategyCandleType; checked: boolean; showShortLabel: boolean; onToggle: (value: string, checked: boolean) => void; }) { const opt = OPTIONS_BY_VALUE[value]; return ( ); } const StartTimeframeCheckboxes: React.FC = ({ selected, onChange, className = '', layout = 'default', compact = false, }) => { const selectedSet = new Set(selected); const toggle = (value: string, checked: boolean) => { if (checked) { if (!selectedSet.has(value)) onChange([...selected, value]); return; } const next = selected.filter(t => t !== value); onChange(next.length > 0 ? next : [value]); }; const stop = (e: React.SyntheticEvent) => e.stopPropagation(); if (layout === 'graph') { return (
{START_TIMEFRAME_GRAPH_ROWS.map((row, rowIdx) => (
{row.map(ct => ( ))}
))}
); } return (
{STRATEGY_CANDLE_TYPES.map(ct => ( ))}
); }; export default StartTimeframeCheckboxes;