import React, { useEffect, useRef } from 'react'; import { INFLECTION_33_FILTER_OPTIONS, inflection33FilterSummary, inflection33SummaryText, type Inflection33FilterLevel, } from '../../utils/inflection33Strategy'; interface Props { mode: 'buy' | 'sell'; period: number; filterLevel: Inflection33FilterLevel; onChange: (filterLevel: Inflection33FilterLevel) => void; onClose: () => void; popoverClassName?: string; variant?: 'popover' | 'inline'; } export default function Inflection33PairNodeSettings({ mode, period, filterLevel, onChange, onClose, popoverClassName = 'se-flow-settings-pop', variant = 'popover', }: Props) { const ref = useRef(null); useEffect(() => { if (variant === 'inline') return; const onDoc = (e: MouseEvent) => { if (ref.current && !ref.current.contains(e.target as Node)) onClose(); }; document.addEventListener('mousedown', onDoc); return () => document.removeEventListener('mousedown', onDoc); }, [onClose, variant]); const body = ( <>

{INFLECTION_33_FILTER_OPTIONS.find(o => o.value === filterLevel)?.desc}

{inflection33FilterSummary(mode, filterLevel)}

{inflection33SummaryText(mode, period, filterLevel)}

); if (variant === 'inline') { return (
e.stopPropagation()}> {body}
); } return (
e.stopPropagation()} >
필터 강도
{body}
); }