UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 979 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@atlaskit/pragmatic-drag-and-drop/element/adapter"),r=require("@atlaskit/pragmatic-drag-and-drop/combine"),a=require("./data.js"),n=require("./drag-drop-provider.js");function i(e){return e&&e.__esModule?e:{default:e}}var o=i(require("invariant"));exports.default=function({id:i,index:d,ref:u}){const c=n.useDragDropContext(),[g,s]=e.useState(!1);return e.useEffect((()=>{const e=null==u?void 0:u.current;if(!e)return;o.default(c,"Expected context to be defined. Please ensure your component is within a DragDropProvider.");const{contextId:n}=c;return r.combine(t.draggable({element:e,getInitialData:()=>a.getDraggable({id:i,initialIndex:d,contextId:n}),onDragStart:()=>s(!0),onDrop:()=>s(!1)}),t.dropTargetForElements({element:e,getData:()=>a.getDropTarget({id:i,contextId:n}),canDrop:({source:e})=>a.isDraggable(e.data)&&e.data.contextId===n}))}),[c,i,d,u]),{isDragging:g}};