= ({
manager,
containerEl,
candleOnly,
onExpand,
onRestore,
}) => {
const [pos, setPos] = useState<{ left: number; top: number } | null>(null);
const updatePos = useCallback(() => {
const main = manager.getPaneLayouts().find(l => l.paneIndex === 0);
if (!main) { setPos(null); return; }
const rect = containerEl.getBoundingClientRect();
const paneBottomY = rect.top + main.topY + main.height;
setPos({
left: rect.left + 4,
top: paneBottomY - 30,
});
}, [manager, containerEl]);
useEffect(() => {
updatePos();
const ro = new ResizeObserver(() => updatePos());
ro.observe(containerEl);
const id = setInterval(updatePos, 400);
return () => { ro.disconnect(); clearInterval(id); };
}, [containerEl, updatePos, candleOnly]);
if (!pos) return null;
return (
e.stopPropagation()}
>
{candleOnly ? (
) : (
)}
);
};
export default CandlePaneControls;