| 123456789101112131415161718192021222324252627 |
- import { Feature } from '../../motion/features/Feature.mjs';
- import { noop } from 'motion-utils';
- import { VisualElementDragControls } from './VisualElementDragControls.mjs';
- class DragGesture extends Feature {
- constructor(node) {
- super(node);
- this.removeGroupControls = noop;
- this.removeListeners = noop;
- this.controls = new VisualElementDragControls(node);
- }
- mount() {
- // If we've been provided a DragControls for manual control over the drag gesture,
- // subscribe this component to it on mount.
- const { dragControls } = this.node.getProps();
- if (dragControls) {
- this.removeGroupControls = dragControls.subscribe(this.controls);
- }
- this.removeListeners = this.controls.addListeners() || noop;
- }
- unmount() {
- this.removeGroupControls();
- this.removeListeners();
- }
- }
- export { DragGesture };
|