Sha256: 49a561a4bf008f2bf905bda6c4a0d4af1830f462e1a1ead00570ec33d65d4ca9

Contents?: true

Size: 534 Bytes

Versions: 8

Compression:

Stored size: 534 Bytes

Contents

import React, { useEffect, useRef } from "react";
import { Draggable } from "./types";

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

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

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

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pages_core-3.14.0 app/javascript/components/drag/useDraggable.ts
pages_core-3.13.0 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.7 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.6 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.5 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.4 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.3 app/javascript/components/drag/useDraggable.ts
pages_core-3.12.2 app/javascript/components/drag/useDraggable.ts