{"version":3,"file":"Draggable.mjs","sources":["../../../../admin/src/components/AssetGridList/Draggable.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\ninterface DraggableProps {\n  id: string | number;\n  index: number;\n  children: React.ReactNode;\n  moveItem: (fromIndex: number, toIndex: number) => void;\n}\n\nexport const Draggable = ({ children, id, index, moveItem }: DraggableProps) => {\n  const ref = React.useRef(null);\n\n  const [, drop] = useDrop({\n    accept: 'draggable',\n    hover(hoveredOverItem: { id: number; index: number }) {\n      if (!ref.current) {\n        return;\n      }\n\n      if (hoveredOverItem.id !== id) {\n        moveItem(hoveredOverItem.index, index);\n\n        hoveredOverItem.index = index;\n      }\n    },\n  });\n\n  const [{ isDragging }, drag] = useDrag({\n    type: 'draggable',\n    item() {\n      return { index, id };\n    },\n    collect: (monitor) => ({\n      isDragging: monitor.isDragging(),\n    }),\n  });\n\n  const opacity = isDragging ? 0.2 : 1;\n\n  drag(drop(ref));\n\n  return (\n    <div ref={ref} style={{ opacity, cursor: 'move' }}>\n      {children}\n    </div>\n  );\n};\n"],"names":["Draggable","children","id","index","moveItem","ref","React","useRef","drop","useDrop","accept","hover","hoveredOverItem","current","isDragging","drag","useDrag","type","item","collect","monitor","opacity","_jsx","div","style","cursor"],"mappings":";;;;AAWO,MAAMA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,EAAE,EAAEC,KAAK,EAAEC,QAAQ,EAAkB,GAAA;IACzE,MAAMC,GAAAA,GAAMC,KAAAA,CAAMC,MAAM,CAAC,IAAA,CAAA;IAEzB,MAAM,GAAGC,IAAAA,CAAK,GAAGC,OAAAA,CAAQ;QACvBC,MAAAA,EAAQ,WAAA;AACRC,QAAAA,KAAAA,CAAAA,CAAMC,eAA8C,EAAA;YAClD,IAAI,CAACP,GAAAA,CAAIQ,OAAO,EAAE;AAChB,gBAAA;AACF,YAAA;YAEA,IAAID,eAAAA,CAAgBV,EAAE,KAAKA,EAAAA,EAAI;gBAC7BE,QAAAA,CAASQ,eAAAA,CAAgBT,KAAK,EAAEA,KAAAA,CAAAA;AAEhCS,gBAAAA,eAAAA,CAAgBT,KAAK,GAAGA,KAAAA;AAC1B,YAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAM,CAAC,EAAEW,UAAU,EAAE,EAAEC,IAAAA,CAAK,GAAGC,OAAAA,CAAQ;QACrCC,IAAAA,EAAM,WAAA;AACNC,QAAAA,IAAAA,CAAAA,GAAAA;YACE,OAAO;AAAEf,gBAAAA,KAAAA;AAAOD,gBAAAA;AAAG,aAAA;AACrB,QAAA,CAAA;QACAiB,OAAAA,EAAS,CAACC,WAAa;AACrBN,gBAAAA,UAAAA,EAAYM,QAAQN,UAAU;aAChC;AACF,KAAA,CAAA;IAEA,MAAMO,OAAAA,GAAUP,aAAa,GAAA,GAAM,CAAA;AAEnCC,IAAAA,IAAAA,CAAKP,IAAAA,CAAKH,GAAAA,CAAAA,CAAAA;AAEV,IAAA,qBACEiB,GAAA,CAACC,KAAAA,EAAAA;QAAIlB,GAAAA,EAAKA,GAAAA;QAAKmB,KAAAA,EAAO;AAAEH,YAAAA,OAAAA;YAASI,MAAAA,EAAQ;AAAO,SAAA;AAC7CxB,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}