UNPKG

2.63 kBSource Map (JSON)View Raw
1{"version":3,"sources":["useDrag.js"],"names":["defaultOptions","dragImage","dragImageXOffset","dragImageYOffset","transfer","transferFormat","useDrag","targetRef","options","onDragStart","onDragEnd","isDragging","setIsDragging","opts","event","img","Image","src","dataTransfer","setDragImage","data","JSON","stringify","setData"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,cAAc,GAAG;AACrBC,EAAAA,SAAS,EAAE,IADU;AAErBC,EAAAA,gBAAgB,EAAE,CAFG;AAGrBC,EAAAA,gBAAgB,EAAE,CAHG;AAIrBC,EAAAA,QAAQ,EAAE,IAJW;AAKrBC,EAAAA,cAAc,EAAE;AALK,CAAvB;;AAQA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,SAAD,EAAyC;AAAA,MAA7BC,OAA6B,uEAAnBR,cAAmB;;AAAA,uBACpB,gCAAcO,SAAd,EAAyB,IAAzB,CADoB;AAAA,MAC/CE,WAD+C,kBAC/CA,WAD+C;AAAA,MAClCC,SADkC,kBAClCA,SADkC;;AAAA,kBAEnB,qBAAS,KAAT,CAFmB;AAAA;AAAA,MAEhDC,UAFgD;AAAA,MAEpCC,aAFoC;;AAGvD,MAAMC,IAAI,qBAAQb,cAAR,MAA4BQ,OAAO,IAAI,EAAvC,CAAV;;AAEAC,EAAAA,WAAW,CAAC,UAACK,KAAD,EAAW;AACrBF,IAAAA,aAAa,CAAC,IAAD,CAAb;;AAEA,QAAIC,IAAI,CAACZ,SAAT,EAAoB;AAClB,UAAMc,GAAG,GAAG,IAAIC,KAAJ,EAAZ;AACAD,MAAAA,GAAG,CAACE,GAAJ,GAAUJ,IAAI,CAACZ,SAAf;AACAa,MAAAA,KAAK,CAACI,YAAN,CAAmBC,YAAnB,CAAgCJ,GAAhC,EAAqCF,IAAI,CAACX,gBAA1C,EAA4DW,IAAI,CAACV,gBAAjE;AACD;;AAED,QAAIU,IAAI,CAACT,QAAT,EAAmB;AACjB,UAAMgB,IAAI,GAAG,QAAOP,IAAI,CAACT,QAAZ,MAAyB,QAAzB,GAAoCiB,IAAI,CAACC,SAAL,CAAeT,IAAI,CAACT,QAApB,CAApC,aAAuES,IAAI,CAACT,QAA5E,CAAb;AACAU,MAAAA,KAAK,CAACI,YAAN,CAAmBK,OAAnB,CAA2BV,IAAI,CAACR,cAAhC,EAAgDe,IAAhD;AACD;AACF,GAbU,CAAX;AAeAV,EAAAA,SAAS,CAAC;AAAA,WAAME,aAAa,CAAC,KAAD,CAAnB;AAAA,GAAD,CAAT;AAEA,SAAOD,UAAP;AACD,CAvBD;;eAyBeL,O","sourcesContent":["import { useState } from 'react';\nimport useDragEvents from './useDragEvents';\n\nconst defaultOptions = {\n dragImage: null,\n dragImageXOffset: 0,\n dragImageYOffset: 0,\n transfer: null,\n transferFormat: 'text',\n};\n\nconst useDrag = (targetRef, options = defaultOptions) => {\n const { onDragStart, onDragEnd } = useDragEvents(targetRef, true);\n const [isDragging, setIsDragging] = useState(false);\n const opts = { ...defaultOptions, ...(options || {}) };\n\n onDragStart((event) => {\n setIsDragging(true);\n\n if (opts.dragImage) {\n const img = new Image();\n img.src = opts.dragImage;\n event.dataTransfer.setDragImage(img, opts.dragImageXOffset, opts.dragImageYOffset);\n }\n\n if (opts.transfer) {\n const data = typeof opts.transfer === 'object' ? JSON.stringify(opts.transfer) : `${opts.transfer}`;\n event.dataTransfer.setData(opts.transferFormat, data);\n }\n });\n\n onDragEnd(() => setIsDragging(false));\n\n return isDragging;\n};\n\nexport default useDrag;\n"],"file":"useDrag.js"}
\No newline at end of file