Sha256: 1239c71ddd1dd8996ee1d565013f02106312a374c0bd297ef22385fca581908c

Contents?: true

Size: 597 Bytes

Versions: 4

Compression:

Stored size: 597 Bytes

Contents

import React, { DragEvent, useEffect, useRef } from "react";

import * as Drag from "../../types/Drag";

export default function useDraggable<T = Drag.DraggableRecord>(
  draggable: Drag.Draggable<T>,
  startDrag: (evt: React.MouseEvent, draggable: Drag.Draggable<T>) => void
) {
  const ref = useRef<HTMLDivElement>(null);

  const handleDrag = (evt: DragEvent) => {
    evt.preventDefault();
    evt.stopPropagation();
    startDrag(evt, draggable);
  };

  useEffect(() => {
    draggable.ref.current = ref.current;
  }, []);

  return { ref: ref, onDragStart: handleDrag, draggable: true };
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pages_core-3.15.4 app/javascript/components/drag/useDraggable.ts
pages_core-3.15.3 app/javascript/components/drag/useDraggable.ts
pages_core-3.15.2 app/javascript/components/drag/useDraggable.ts
pages_core-3.15.1 app/javascript/components/drag/useDraggable.ts