import * as React from "react"; import Selecto from "react-selecto"; import Moveable from "@/react-moveable"; export default function App() { const [targets, setTargets] = React.useState>([]); const moveableRef = React.useRef(null); const selectoRef = React.useRef(null); const cubes = []; for (let i = 0; i < 30; ++i) { cubes.push(i); } return
{ selectoRef.current!.clickTarget(e.inputEvent, e.inputTarget); }} onDrag={e => { e.target.style.transform = e.transform; }} onDragGroup={e => { e.events.forEach(ev => { ev.target.style.transform = ev.transform; }); }} > { const moveable = moveableRef.current!; const target = e.inputEvent.target; if ( moveable.isMoveableElement(target) || targets.some(t => t === target || t.contains(target)) ) { e.stop(); } }} onSelectEnd={e => { const moveable = moveableRef.current!; if (e.isDragStart) { e.inputEvent.preventDefault(); moveable.waitToChangeTarget().then(() => { moveable.dragStart(e.inputEvent); }); } setTargets(e.selected); }} >
{cubes.map(i =>
)}
; }