@paprika/uploader 4.1.1 → 4.1.3-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.1.3-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - a032f9b: Assign files to the html input when using drag&drop
8
+
9
+ ## 4.1.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [16c9b8d]
14
+ - @paprika/button@1.1.14
15
+ - @paprika/raw-button@1.0.14
16
+ - @paprika/popover@2.0.6
17
+
18
+ ## 4.1.2-next.0
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies [16c9b8d]
23
+ - @paprika/button@1.1.14-next.0
24
+ - @paprika/raw-button@1.0.14-next.0
25
+ - @paprika/popover@2.0.6-next.0
26
+
3
27
  ## 4.1.1
4
28
 
5
29
  ### Patch Changes
package/lib/Uploader.js CHANGED
@@ -218,8 +218,13 @@ var Uploader = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
218
218
  setFiles = _useProcessFiles.setFiles,
219
219
  upload = _useProcessFiles.upload;
220
220
 
221
- var handleChange = _react["default"].useCallback(function (event) {
221
+ var handleChange = _react["default"].useCallback(function (event, fromDrop) {
222
222
  if (isDisabled || isBusy) return;
223
+
224
+ if (fromDrop && refInput.current) {
225
+ refInput.current.files = canChooseMultiple ? event.dataTransfer.files : event.dataTransfer.files[0];
226
+ }
227
+
223
228
  var files = (0, _helpers2.getFiles)({
224
229
  event: event,
225
230
  maxFileSize: maxFileSize,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Uploader.js"],"names":["oneMebibyte","UploaderContext","React","createContext","propTypes","a11yText","PropTypes","string","supportedMimeTypes","arrayOf","canChooseMultiple","bool","children","node","isRequired","isDisabled","endpoint","hasAutoUpload","isBodyDroppable","maxFileSize","number","onChange","func","onCompleted","headers","object","onProcessed","onRequest","onError","onCancel","zIndex","defaultProps","getDocumentBody","document","body","getContainer","refContainer","findContainer","current","Uploader","forwardRef","props","ref","morePropsOnUploaderWrapper","refInput","useRef","i18n","label","t","extendedInputProps","UploaderInputPropsCollector","useImperativeHandle","focus","files","isCompleted","isBusy","removeFile","cancelFile","setFiles","upload","handleChange","useCallback","event","dropArea","isDragLeave","isDraggingOver","value","displayName","types","DropZone","FileList","Input","convertUnitsToMebibytes","MiB"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport useI18n from \"@paprika/l10n/lib/useI18n\";\nimport { extractChildrenProps } from \"@paprika/helpers\";\nimport { getFiles } from \"./helpers\";\nimport FileList from \"./components/FileList\";\nimport DropZone from \"./components/DropZone\";\nimport * as types from \"./types\";\nimport useDragAndDropEvents from \"./useDragAndDropEvents\";\nimport useProcessFiles from \"./useProcessFiles\";\nimport UploaderInputPropsCollector from \"./components/UploaderInputPropsCollector\";\n\nconst oneMebibyte = 1048576;\n\nexport const UploaderContext = React.createContext(null);\n\nconst propTypes = {\n /**\n Accessible message for the input[type=\"file\"].\n */\n a11yText: PropTypes.string,\n /**\n An array of accepted file extensions and/or MIME types. Note that Microsoft MIME types don't seem to be enforced.\n */\n supportedMimeTypes: PropTypes.arrayOf(PropTypes.string),\n /**\n When false the uploader only accept one file per upload.\n */\n canChooseMultiple: PropTypes.bool,\n /**\n children nodes\n */\n children: PropTypes.node.isRequired,\n /**\n Is uploader disabled.\n */\n isDisabled: PropTypes.bool,\n /**\n The url that will be use to upload the files.\n */\n endpoint: PropTypes.string.isRequired,\n /**\n On true will upload the file as soon they are selected or dropped\n */\n hasAutoUpload: PropTypes.bool,\n /**\n When true the user will be able to drop files at any part of the document.body. On false will only receive files dropped exactly on the FileInput area.\n */\n isBodyDroppable: PropTypes.bool,\n /**\n Size in Mebibytes which is used for comparing each file that will be uploaded.\n */\n maxFileSize: PropTypes.number,\n /**\n This callback fires every time the input value has been changed.\n */\n onChange: PropTypes.func,\n /**\n Will fire once all files have been processed with the files as parameter.\n */\n onCompleted: PropTypes.func,\n /**\n you can pass an array of header objects.\n */\n headers: PropTypes.arrayOf(PropTypes.object),\n /**\n This callback fires when uploading is about to start (all files have been processed to see if they are valid type/size).\n */\n onProcessed: PropTypes.func,\n /**\n * Let you to take over the request method\n */\n onRequest: PropTypes.func,\n /**\n * Callback fired whenever an error occurs while uploading a file. It receives the raw server error as an argument. Whatever this function returns is what is displayed in the UI. If nothing is returned, it will display the raw server error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired when the user cancels an uploading file.\n */\n onCancel: PropTypes.func,\n /**\n * z-index for popovers inside the uploader.\n */\n zIndex: PropTypes.number,\n};\n\nconst defaultProps = {\n a11yText: null,\n canChooseMultiple: true,\n isDisabled: false,\n hasAutoUpload: true,\n headers: [],\n isBodyDroppable: true,\n maxFileSize: oneMebibyte * 10, // 1048576bytes * 10 = 10,485,760 Mebibytes\n onCancel: () => {},\n onChange: () => {},\n onCompleted: () => {},\n onError: null,\n onProcessed: () => {},\n onRequest: null,\n supportedMimeTypes: [\"*/*\"],\n zIndex: 1,\n};\n\nfunction getDocumentBody() {\n return document.body;\n}\n\nfunction getContainer(refContainer) {\n return function findContainer() {\n return refContainer.current;\n };\n}\n\nconst Uploader = React.forwardRef((props, ref) => {\n const {\n a11yText,\n canChooseMultiple,\n children,\n endpoint,\n hasAutoUpload,\n headers,\n isBodyDroppable,\n isDisabled,\n maxFileSize,\n onCancel,\n onChange,\n onCompleted,\n onError,\n onProcessed,\n onRequest,\n supportedMimeTypes,\n zIndex,\n ...morePropsOnUploaderWrapper\n } = props;\n\n const refInput = React.useRef();\n const refContainer = React.useRef(null);\n const i18n = useI18n();\n const label = a11yText || i18n.t(\"uploader.choose_from_computer_a11y\");\n const extendedInputProps = extractChildrenProps(children, UploaderInputPropsCollector);\n\n React.useImperativeHandle(ref, () => ({\n focus: () => {\n refInput.current.focus();\n },\n }));\n\n const { files, isCompleted, isBusy, removeFile, cancelFile, setFiles, upload } = useProcessFiles({\n endpoint,\n hasAutoUpload,\n headers,\n onCompleted,\n onProcessed,\n onRequest,\n });\n\n const handleChange = React.useCallback(\n event => {\n if (isDisabled || isBusy) return;\n\n const files = getFiles({ event, maxFileSize, supportedMimeTypes, endpoint });\n setFiles(() => (canChooseMultiple ? files : [files[0]])); // in case only allow one file per upload\n onChange(files);\n },\n [canChooseMultiple, endpoint, isDisabled, isBusy, maxFileSize, setFiles, supportedMimeTypes, onChange]\n );\n\n const { isDragLeave, isDraggingOver } = useDragAndDropEvents({\n dropArea: isBodyDroppable ? getDocumentBody : getContainer(refContainer),\n handleChange,\n });\n\n const value = {\n cancelFile,\n canChooseMultiple,\n extendedInputProps,\n files,\n handleChange,\n isBusy,\n isCompleted,\n isDisabled,\n isDraggingOver,\n isDragLeave,\n label,\n maxFileSize,\n morePropsOnUploaderWrapper,\n onCancel,\n onError,\n refContainer,\n refInput,\n removeFile,\n supportedMimeTypes,\n upload,\n zIndex,\n };\n\n return <UploaderContext.Provider value={value}>{children}</UploaderContext.Provider>;\n});\n\nUploader.defaultProps = defaultProps;\nUploader.propTypes = propTypes;\nUploader.displayName = \"Uploader\";\nUploader.types = types;\n\nUploader.DropZone = DropZone;\nUploader.FileList = FileList;\nUploader.Input = UploaderInputPropsCollector;\n\n// utility tool to help creating a maximum desirable size for files\nUploader.convertUnitsToMebibytes = (MiB = 1) => oneMebibyte * MiB;\n\nexport default Uploader;\n"],"file":"Uploader.js"}
1
+ {"version":3,"sources":["../src/Uploader.js"],"names":["oneMebibyte","UploaderContext","React","createContext","propTypes","a11yText","PropTypes","string","supportedMimeTypes","arrayOf","canChooseMultiple","bool","children","node","isRequired","isDisabled","endpoint","hasAutoUpload","isBodyDroppable","maxFileSize","number","onChange","func","onCompleted","headers","object","onProcessed","onRequest","onError","onCancel","zIndex","defaultProps","getDocumentBody","document","body","getContainer","refContainer","findContainer","current","Uploader","forwardRef","props","ref","morePropsOnUploaderWrapper","refInput","useRef","i18n","label","t","extendedInputProps","UploaderInputPropsCollector","useImperativeHandle","focus","files","isCompleted","isBusy","removeFile","cancelFile","setFiles","upload","handleChange","useCallback","event","fromDrop","dataTransfer","dropArea","isDragLeave","isDraggingOver","value","displayName","types","DropZone","FileList","Input","convertUnitsToMebibytes","MiB"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,WAAW,GAAG,OAApB;;AAEO,IAAMC,eAAe,gBAAGC,kBAAMC,aAAN,CAAoB,IAApB,CAAxB;;;AAEP,IAAMC,SAAS,GAAG;AAChB;AACF;AACA;AACEC,EAAAA,QAAQ,EAAEC,sBAAUC,MAJJ;;AAKhB;AACF;AACA;AACEC,EAAAA,kBAAkB,EAAEF,sBAAUG,OAAV,CAAkBH,sBAAUC,MAA5B,CARJ;;AAShB;AACF;AACA;AACEG,EAAAA,iBAAiB,EAAEJ,sBAAUK,IAZb;;AAahB;AACF;AACA;AACEC,EAAAA,QAAQ,EAAEN,sBAAUO,IAAV,CAAeC,UAhBT;;AAiBhB;AACF;AACA;AACEC,EAAAA,UAAU,EAAET,sBAAUK,IApBN;;AAqBhB;AACF;AACA;AACEK,EAAAA,QAAQ,EAAEV,sBAAUC,MAAV,CAAiBO,UAxBX;;AAyBhB;AACF;AACA;AACEG,EAAAA,aAAa,EAAEX,sBAAUK,IA5BT;;AA6BhB;AACF;AACA;AACEO,EAAAA,eAAe,EAAEZ,sBAAUK,IAhCX;;AAiChB;AACF;AACA;AACEQ,EAAAA,WAAW,EAAEb,sBAAUc,MApCP;;AAqChB;AACF;AACA;AACEC,EAAAA,QAAQ,EAAEf,sBAAUgB,IAxCJ;;AAyChB;AACF;AACA;AACEC,EAAAA,WAAW,EAAEjB,sBAAUgB,IA5CP;;AA6ChB;AACF;AACA;AACEE,EAAAA,OAAO,EAAElB,sBAAUG,OAAV,CAAkBH,sBAAUmB,MAA5B,CAhDO;;AAiDhB;AACF;AACA;AACEC,EAAAA,WAAW,EAAEpB,sBAAUgB,IApDP;;AAqDhB;AACF;AACA;AACEK,EAAAA,SAAS,EAAErB,sBAAUgB,IAxDL;;AAyDhB;AACF;AACA;AACEM,EAAAA,OAAO,EAAEtB,sBAAUgB,IA5DH;;AA6DhB;AACF;AACA;AACEO,EAAAA,QAAQ,EAAEvB,sBAAUgB,IAhEJ;;AAiEhB;AACF;AACA;AACEQ,EAAAA,MAAM,EAAExB,sBAAUc;AApEF,CAAlB;AAuEA,IAAMW,YAAY,GAAG;AACnB1B,EAAAA,QAAQ,EAAE,IADS;AAEnBK,EAAAA,iBAAiB,EAAE,IAFA;AAGnBK,EAAAA,UAAU,EAAE,KAHO;AAInBE,EAAAA,aAAa,EAAE,IAJI;AAKnBO,EAAAA,OAAO,EAAE,EALU;AAMnBN,EAAAA,eAAe,EAAE,IANE;AAOnBC,EAAAA,WAAW,EAAEnB,WAAW,GAAG,EAPR;AAOY;AAC/B6B,EAAAA,QAAQ,EAAE,oBAAM,CAAE,CARC;AASnBR,EAAAA,QAAQ,EAAE,oBAAM,CAAE,CATC;AAUnBE,EAAAA,WAAW,EAAE,uBAAM,CAAE,CAVF;AAWnBK,EAAAA,OAAO,EAAE,IAXU;AAYnBF,EAAAA,WAAW,EAAE,uBAAM,CAAE,CAZF;AAanBC,EAAAA,SAAS,EAAE,IAbQ;AAcnBnB,EAAAA,kBAAkB,EAAE,CAAC,KAAD,CAdD;AAenBsB,EAAAA,MAAM,EAAE;AAfW,CAArB;;AAkBA,SAASE,eAAT,GAA2B;AACzB,SAAOC,QAAQ,CAACC,IAAhB;AACD;;AAED,SAASC,YAAT,CAAsBC,YAAtB,EAAoC;AAClC,SAAO,SAASC,aAAT,GAAyB;AAC9B,WAAOD,YAAY,CAACE,OAApB;AACD,GAFD;AAGD;;AAED,IAAMC,QAAQ,gBAAGrC,kBAAMsC,UAAN,CAAiB,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAChD,MACErC,QADF,GAmBIoC,KAnBJ,CACEpC,QADF;AAAA,MAEEK,iBAFF,GAmBI+B,KAnBJ,CAEE/B,iBAFF;AAAA,MAGEE,QAHF,GAmBI6B,KAnBJ,CAGE7B,QAHF;AAAA,MAIEI,QAJF,GAmBIyB,KAnBJ,CAIEzB,QAJF;AAAA,MAKEC,aALF,GAmBIwB,KAnBJ,CAKExB,aALF;AAAA,MAMEO,OANF,GAmBIiB,KAnBJ,CAMEjB,OANF;AAAA,MAOEN,eAPF,GAmBIuB,KAnBJ,CAOEvB,eAPF;AAAA,MAQEH,UARF,GAmBI0B,KAnBJ,CAQE1B,UARF;AAAA,MASEI,WATF,GAmBIsB,KAnBJ,CASEtB,WATF;AAAA,MAUEU,QAVF,GAmBIY,KAnBJ,CAUEZ,QAVF;AAAA,MAWER,QAXF,GAmBIoB,KAnBJ,CAWEpB,QAXF;AAAA,MAYEE,WAZF,GAmBIkB,KAnBJ,CAYElB,WAZF;AAAA,MAaEK,OAbF,GAmBIa,KAnBJ,CAaEb,OAbF;AAAA,MAcEF,WAdF,GAmBIe,KAnBJ,CAcEf,WAdF;AAAA,MAeEC,SAfF,GAmBIc,KAnBJ,CAeEd,SAfF;AAAA,MAgBEnB,kBAhBF,GAmBIiC,KAnBJ,CAgBEjC,kBAhBF;AAAA,MAiBEsB,MAjBF,GAmBIW,KAnBJ,CAiBEX,MAjBF;AAAA,MAkBKa,0BAlBL,6CAmBIF,KAnBJ;;AAqBA,MAAMG,QAAQ,GAAG1C,kBAAM2C,MAAN,EAAjB;;AACA,MAAMT,YAAY,GAAGlC,kBAAM2C,MAAN,CAAa,IAAb,CAArB;;AACA,MAAMC,IAAI,GAAG,0BAAb;AACA,MAAMC,KAAK,GAAG1C,QAAQ,IAAIyC,IAAI,CAACE,CAAL,CAAO,oCAAP,CAA1B;AACA,MAAMC,kBAAkB,GAAG,mCAAqBrC,QAArB,EAA+BsC,uCAA/B,CAA3B;;AAEAhD,oBAAMiD,mBAAN,CAA0BT,GAA1B,EAA+B;AAAA,WAAO;AACpCU,MAAAA,KAAK,EAAE,iBAAM;AACXR,QAAAA,QAAQ,CAACN,OAAT,CAAiBc,KAAjB;AACD;AAHmC,KAAP;AAAA,GAA/B;;AAMA,yBAAiF,kCAAgB;AAC/FpC,IAAAA,QAAQ,EAARA,QAD+F;AAE/FC,IAAAA,aAAa,EAAbA,aAF+F;AAG/FO,IAAAA,OAAO,EAAPA,OAH+F;AAI/FD,IAAAA,WAAW,EAAXA,WAJ+F;AAK/FG,IAAAA,WAAW,EAAXA,WAL+F;AAM/FC,IAAAA,SAAS,EAATA;AAN+F,GAAhB,CAAjF;AAAA,MAAQ0B,KAAR,oBAAQA,KAAR;AAAA,MAAeC,WAAf,oBAAeA,WAAf;AAAA,MAA4BC,MAA5B,oBAA4BA,MAA5B;AAAA,MAAoCC,UAApC,oBAAoCA,UAApC;AAAA,MAAgDC,UAAhD,oBAAgDA,UAAhD;AAAA,MAA4DC,QAA5D,oBAA4DA,QAA5D;AAAA,MAAsEC,MAAtE,oBAAsEA,MAAtE;;AASA,MAAMC,YAAY,GAAG1D,kBAAM2D,WAAN,CACnB,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACnB,QAAIhD,UAAU,IAAIwC,MAAlB,EAA0B;;AAE1B,QAAIQ,QAAQ,IAAInB,QAAQ,CAACN,OAAzB,EAAkC;AAChCM,MAAAA,QAAQ,CAACN,OAAT,CAAiBe,KAAjB,GAAyB3C,iBAAiB,GAAGoD,KAAK,CAACE,YAAN,CAAmBX,KAAtB,GAA8BS,KAAK,CAACE,YAAN,CAAmBX,KAAnB,CAAyB,CAAzB,CAAxE;AACD;;AAED,QAAMA,KAAK,GAAG,wBAAS;AAAES,MAAAA,KAAK,EAALA,KAAF;AAAS3C,MAAAA,WAAW,EAAXA,WAAT;AAAsBX,MAAAA,kBAAkB,EAAlBA,kBAAtB;AAA0CQ,MAAAA,QAAQ,EAARA;AAA1C,KAAT,CAAd;AACA0C,IAAAA,QAAQ,CAAC;AAAA,aAAOhD,iBAAiB,GAAG2C,KAAH,GAAW,CAACA,KAAK,CAAC,CAAD,CAAN,CAAnC;AAAA,KAAD,CAAR,CARmB,CAQuC;;AAC1DhC,IAAAA,QAAQ,CAACgC,KAAD,CAAR;AACD,GAXkB,EAYnB,CAAC3C,iBAAD,EAAoBM,QAApB,EAA8BD,UAA9B,EAA0CwC,MAA1C,EAAkDpC,WAAlD,EAA+DuC,QAA/D,EAAyElD,kBAAzE,EAA6Fa,QAA7F,CAZmB,CAArB;;AAeA,8BAAwC,uCAAqB;AAC3D4C,IAAAA,QAAQ,EAAE/C,eAAe,GAAGc,eAAH,GAAqBG,YAAY,CAACC,YAAD,CADC;AAE3DwB,IAAAA,YAAY,EAAZA;AAF2D,GAArB,CAAxC;AAAA,MAAQM,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,cAArB,yBAAqBA,cAArB;;AAKA,MAAMC,KAAK,GAAG;AACZX,IAAAA,UAAU,EAAVA,UADY;AAEZ/C,IAAAA,iBAAiB,EAAjBA,iBAFY;AAGZuC,IAAAA,kBAAkB,EAAlBA,kBAHY;AAIZI,IAAAA,KAAK,EAALA,KAJY;AAKZO,IAAAA,YAAY,EAAZA,YALY;AAMZL,IAAAA,MAAM,EAANA,MANY;AAOZD,IAAAA,WAAW,EAAXA,WAPY;AAQZvC,IAAAA,UAAU,EAAVA,UARY;AASZoD,IAAAA,cAAc,EAAdA,cATY;AAUZD,IAAAA,WAAW,EAAXA,WAVY;AAWZnB,IAAAA,KAAK,EAALA,KAXY;AAYZ5B,IAAAA,WAAW,EAAXA,WAZY;AAaZwB,IAAAA,0BAA0B,EAA1BA,0BAbY;AAcZd,IAAAA,QAAQ,EAARA,QAdY;AAeZD,IAAAA,OAAO,EAAPA,OAfY;AAgBZQ,IAAAA,YAAY,EAAZA,YAhBY;AAiBZQ,IAAAA,QAAQ,EAARA,QAjBY;AAkBZY,IAAAA,UAAU,EAAVA,UAlBY;AAmBZhD,IAAAA,kBAAkB,EAAlBA,kBAnBY;AAoBZmD,IAAAA,MAAM,EAANA,MApBY;AAqBZ7B,IAAAA,MAAM,EAANA;AArBY,GAAd;AAwBA,sBAAO,gCAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEsC;AAAjC,KAAyCxD,QAAzC,CAAP;AACD,CAxFgB,CAAjB;;AA0FA2B,QAAQ,CAACR,YAAT,GAAwBA,YAAxB;AACAQ,QAAQ,CAACnC,SAAT,GAAqBA,SAArB;AACAmC,QAAQ,CAAC8B,WAAT,GAAuB,UAAvB;AACA9B,QAAQ,CAAC+B,KAAT,GAAiBA,KAAjB;AAEA/B,QAAQ,CAACgC,QAAT,GAAoBA,oBAApB;AACAhC,QAAQ,CAACiC,QAAT,GAAoBA,oBAApB;AACAjC,QAAQ,CAACkC,KAAT,GAAiBvB,uCAAjB,C,CAEA;;AACAX,QAAQ,CAACmC,uBAAT,GAAmC;AAAA,MAACC,GAAD,uEAAO,CAAP;AAAA,SAAa3E,WAAW,GAAG2E,GAA3B;AAAA,CAAnC;;eAEepC,Q","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport useI18n from \"@paprika/l10n/lib/useI18n\";\nimport { extractChildrenProps } from \"@paprika/helpers\";\nimport { getFiles } from \"./helpers\";\nimport FileList from \"./components/FileList\";\nimport DropZone from \"./components/DropZone\";\nimport * as types from \"./types\";\nimport useDragAndDropEvents from \"./useDragAndDropEvents\";\nimport useProcessFiles from \"./useProcessFiles\";\nimport UploaderInputPropsCollector from \"./components/UploaderInputPropsCollector\";\n\nconst oneMebibyte = 1048576;\n\nexport const UploaderContext = React.createContext(null);\n\nconst propTypes = {\n /**\n Accessible message for the input[type=\"file\"].\n */\n a11yText: PropTypes.string,\n /**\n An array of accepted file extensions and/or MIME types. Note that Microsoft MIME types don't seem to be enforced.\n */\n supportedMimeTypes: PropTypes.arrayOf(PropTypes.string),\n /**\n When false the uploader only accept one file per upload.\n */\n canChooseMultiple: PropTypes.bool,\n /**\n children nodes\n */\n children: PropTypes.node.isRequired,\n /**\n Is uploader disabled.\n */\n isDisabled: PropTypes.bool,\n /**\n The url that will be use to upload the files.\n */\n endpoint: PropTypes.string.isRequired,\n /**\n On true will upload the file as soon they are selected or dropped\n */\n hasAutoUpload: PropTypes.bool,\n /**\n When true the user will be able to drop files at any part of the document.body. On false will only receive files dropped exactly on the FileInput area.\n */\n isBodyDroppable: PropTypes.bool,\n /**\n Size in Mebibytes which is used for comparing each file that will be uploaded.\n */\n maxFileSize: PropTypes.number,\n /**\n This callback fires every time the input value has been changed.\n */\n onChange: PropTypes.func,\n /**\n Will fire once all files have been processed with the files as parameter.\n */\n onCompleted: PropTypes.func,\n /**\n you can pass an array of header objects.\n */\n headers: PropTypes.arrayOf(PropTypes.object),\n /**\n This callback fires when uploading is about to start (all files have been processed to see if they are valid type/size).\n */\n onProcessed: PropTypes.func,\n /**\n * Let you to take over the request method\n */\n onRequest: PropTypes.func,\n /**\n * Callback fired whenever an error occurs while uploading a file. It receives the raw server error as an argument. Whatever this function returns is what is displayed in the UI. If nothing is returned, it will display the raw server error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired when the user cancels an uploading file.\n */\n onCancel: PropTypes.func,\n /**\n * z-index for popovers inside the uploader.\n */\n zIndex: PropTypes.number,\n};\n\nconst defaultProps = {\n a11yText: null,\n canChooseMultiple: true,\n isDisabled: false,\n hasAutoUpload: true,\n headers: [],\n isBodyDroppable: true,\n maxFileSize: oneMebibyte * 10, // 1048576bytes * 10 = 10,485,760 Mebibytes\n onCancel: () => {},\n onChange: () => {},\n onCompleted: () => {},\n onError: null,\n onProcessed: () => {},\n onRequest: null,\n supportedMimeTypes: [\"*/*\"],\n zIndex: 1,\n};\n\nfunction getDocumentBody() {\n return document.body;\n}\n\nfunction getContainer(refContainer) {\n return function findContainer() {\n return refContainer.current;\n };\n}\n\nconst Uploader = React.forwardRef((props, ref) => {\n const {\n a11yText,\n canChooseMultiple,\n children,\n endpoint,\n hasAutoUpload,\n headers,\n isBodyDroppable,\n isDisabled,\n maxFileSize,\n onCancel,\n onChange,\n onCompleted,\n onError,\n onProcessed,\n onRequest,\n supportedMimeTypes,\n zIndex,\n ...morePropsOnUploaderWrapper\n } = props;\n\n const refInput = React.useRef();\n const refContainer = React.useRef(null);\n const i18n = useI18n();\n const label = a11yText || i18n.t(\"uploader.choose_from_computer_a11y\");\n const extendedInputProps = extractChildrenProps(children, UploaderInputPropsCollector);\n\n React.useImperativeHandle(ref, () => ({\n focus: () => {\n refInput.current.focus();\n },\n }));\n\n const { files, isCompleted, isBusy, removeFile, cancelFile, setFiles, upload } = useProcessFiles({\n endpoint,\n hasAutoUpload,\n headers,\n onCompleted,\n onProcessed,\n onRequest,\n });\n\n const handleChange = React.useCallback(\n (event, fromDrop) => {\n if (isDisabled || isBusy) return;\n\n if (fromDrop && refInput.current) {\n refInput.current.files = canChooseMultiple ? event.dataTransfer.files : event.dataTransfer.files[0];\n }\n\n const files = getFiles({ event, maxFileSize, supportedMimeTypes, endpoint });\n setFiles(() => (canChooseMultiple ? files : [files[0]])); // in case only allow one file per upload\n onChange(files);\n },\n [canChooseMultiple, endpoint, isDisabled, isBusy, maxFileSize, setFiles, supportedMimeTypes, onChange]\n );\n\n const { isDragLeave, isDraggingOver } = useDragAndDropEvents({\n dropArea: isBodyDroppable ? getDocumentBody : getContainer(refContainer),\n handleChange,\n });\n\n const value = {\n cancelFile,\n canChooseMultiple,\n extendedInputProps,\n files,\n handleChange,\n isBusy,\n isCompleted,\n isDisabled,\n isDraggingOver,\n isDragLeave,\n label,\n maxFileSize,\n morePropsOnUploaderWrapper,\n onCancel,\n onError,\n refContainer,\n refInput,\n removeFile,\n supportedMimeTypes,\n upload,\n zIndex,\n };\n\n return <UploaderContext.Provider value={value}>{children}</UploaderContext.Provider>;\n});\n\nUploader.defaultProps = defaultProps;\nUploader.propTypes = propTypes;\nUploader.displayName = \"Uploader\";\nUploader.types = types;\n\nUploader.DropZone = DropZone;\nUploader.FileList = FileList;\nUploader.Input = UploaderInputPropsCollector;\n\n// utility tool to help creating a maximum desirable size for files\nUploader.convertUnitsToMebibytes = (MiB = 1) => oneMebibyte * MiB;\n\nexport default Uploader;\n"],"file":"Uploader.js"}
@@ -53,7 +53,8 @@ function useDragAndDropZoneEvents(_ref) {
53
53
  }
54
54
 
55
55
  function onDrop(event) {
56
- // this prevent images from rendering on the browser
56
+ var fromDrop = true; // this prevent images from rendering on the browser
57
+
57
58
  setisDraggingOver(function () {
58
59
  return false;
59
60
  });
@@ -61,7 +62,7 @@ function useDragAndDropZoneEvents(_ref) {
61
62
  return true;
62
63
  });
63
64
  event.preventDefault();
64
- handleChange(event);
65
+ handleChange(event, fromDrop);
65
66
  }
66
67
 
67
68
  var element = dropArea();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/useDragAndDropEvents.js"],"names":["useDragAndDropZoneEvents","dropArea","document","body","handleChange","React","useState","isDraggingOver","setisDraggingOver","isDragLeave","setIsDragLeave","useEffect","onDragOver","event","preventDefault","onDragLeave","onDrop","element","addEventListener","cleanup","removeEventListener"],"mappings":";;;;;;;;;;;;;;AAAA;;AAEe,SAASA,wBAAT,OAAoF;AAAA,2BAAhDC,QAAgD;AAAA,MAAhDA,QAAgD,8BAArC;AAAA,WAAMC,QAAQ,CAACC,IAAf;AAAA,GAAqC;AAAA,MAAhBC,YAAgB,QAAhBA,YAAgB;;AACjG,wBAA4CC,kBAAMC,QAAN,CAAe,KAAf,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,yBAAsCH,kBAAMC,QAAN,CAAe,KAAf,CAAtC;AAAA;AAAA,MAAOG,WAAP;AAAA,MAAoBC,cAApB;;AAEAL,oBAAMM,SAAN,CAAgB,YAAM;AACpB,aAASC,UAAT,CAAoBC,KAApB,EAA2B;AACzBL,MAAAA,iBAAiB,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAd,CAFyB,CAGzB;;AACAG,MAAAA,KAAK,CAACC,cAAN;AACD;;AAED,aAASC,WAAT,GAAuB;AACrBP,MAAAA,iBAAiB,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAd;AACD;;AAED,aAASM,MAAT,CAAgBH,KAAhB,EAAuB;AACrB;AACAL,MAAAA,iBAAiB,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAd;AACAG,MAAAA,KAAK,CAACC,cAAN;AACAV,MAAAA,YAAY,CAACS,KAAD,CAAZ;AACD;;AAED,QAAMI,OAAO,GAAGhB,QAAQ,EAAxB;AACAgB,IAAAA,OAAO,CAACC,gBAAR,CAAyB,UAAzB,EAAqCN,UAArC,EAAiD,KAAjD;AACAK,IAAAA,OAAO,CAACC,gBAAR,CAAyB,WAAzB,EAAsCH,WAAtC,EAAmD,KAAnD;AACAE,IAAAA,OAAO,CAACC,gBAAR,CAAyB,MAAzB,EAAiCF,MAAjC,EAAyC,KAAzC;AAEA,WAAO,SAASG,OAAT,GAAmB;AACxBF,MAAAA,OAAO,CAACG,mBAAR,CAA4B,UAA5B,EAAwCR,UAAxC,EAAoD,KAApD;AACAK,MAAAA,OAAO,CAACG,mBAAR,CAA4B,WAA5B,EAAyCL,WAAzC,EAAsD,KAAtD;AACAE,MAAAA,OAAO,CAACG,mBAAR,CAA4B,MAA5B,EAAoCJ,MAApC,EAA4C,KAA5C;AACD,KAJD;AAKD,GA/BD,EA+BG,CAACf,QAAD,EAAWG,YAAX,CA/BH;;AAiCA,SAAO;AAAEG,IAAAA,cAAc,EAAdA,cAAF;AAAkBE,IAAAA,WAAW,EAAXA;AAAlB,GAAP;AACD","sourcesContent":["import React from \"react\";\n\nexport default function useDragAndDropZoneEvents({ dropArea = () => document.body, handleChange }) {\n const [isDraggingOver, setisDraggingOver] = React.useState(false);\n const [isDragLeave, setIsDragLeave] = React.useState(false);\n\n React.useEffect(() => {\n function onDragOver(event) {\n setisDraggingOver(() => true);\n setIsDragLeave(() => false);\n // this prevent images from rendering on the browser\n event.preventDefault();\n }\n\n function onDragLeave() {\n setisDraggingOver(() => false);\n setIsDragLeave(() => true);\n }\n\n function onDrop(event) {\n // this prevent images from rendering on the browser\n setisDraggingOver(() => false);\n setIsDragLeave(() => true);\n event.preventDefault();\n handleChange(event);\n }\n\n const element = dropArea();\n element.addEventListener(\"dragover\", onDragOver, false);\n element.addEventListener(\"dragleave\", onDragLeave, false);\n element.addEventListener(\"drop\", onDrop, false);\n\n return function cleanup() {\n element.removeEventListener(\"dragover\", onDragOver, false);\n element.removeEventListener(\"dragleave\", onDragLeave, false);\n element.removeEventListener(\"drop\", onDrop, false);\n };\n }, [dropArea, handleChange]);\n\n return { isDraggingOver, isDragLeave };\n}\n"],"file":"useDragAndDropEvents.js"}
1
+ {"version":3,"sources":["../src/useDragAndDropEvents.js"],"names":["useDragAndDropZoneEvents","dropArea","document","body","handleChange","React","useState","isDraggingOver","setisDraggingOver","isDragLeave","setIsDragLeave","useEffect","onDragOver","event","preventDefault","onDragLeave","onDrop","fromDrop","element","addEventListener","cleanup","removeEventListener"],"mappings":";;;;;;;;;;;;;;AAAA;;AAEe,SAASA,wBAAT,OAAoF;AAAA,2BAAhDC,QAAgD;AAAA,MAAhDA,QAAgD,8BAArC;AAAA,WAAMC,QAAQ,CAACC,IAAf;AAAA,GAAqC;AAAA,MAAhBC,YAAgB,QAAhBA,YAAgB;;AACjG,wBAA4CC,kBAAMC,QAAN,CAAe,KAAf,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,yBAAsCH,kBAAMC,QAAN,CAAe,KAAf,CAAtC;AAAA;AAAA,MAAOG,WAAP;AAAA,MAAoBC,cAApB;;AAEAL,oBAAMM,SAAN,CAAgB,YAAM;AACpB,aAASC,UAAT,CAAoBC,KAApB,EAA2B;AACzBL,MAAAA,iBAAiB,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAd,CAFyB,CAGzB;;AACAG,MAAAA,KAAK,CAACC,cAAN;AACD;;AAED,aAASC,WAAT,GAAuB;AACrBP,MAAAA,iBAAiB,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAd;AACD;;AAED,aAASM,MAAT,CAAgBH,KAAhB,EAAuB;AACrB,UAAMI,QAAQ,GAAG,IAAjB,CADqB,CAErB;;AACAT,MAAAA,iBAAiB,CAAC;AAAA,eAAM,KAAN;AAAA,OAAD,CAAjB;AACAE,MAAAA,cAAc,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAd;AACAG,MAAAA,KAAK,CAACC,cAAN;AACAV,MAAAA,YAAY,CAACS,KAAD,EAAQI,QAAR,CAAZ;AACD;;AAED,QAAMC,OAAO,GAAGjB,QAAQ,EAAxB;AACAiB,IAAAA,OAAO,CAACC,gBAAR,CAAyB,UAAzB,EAAqCP,UAArC,EAAiD,KAAjD;AACAM,IAAAA,OAAO,CAACC,gBAAR,CAAyB,WAAzB,EAAsCJ,WAAtC,EAAmD,KAAnD;AACAG,IAAAA,OAAO,CAACC,gBAAR,CAAyB,MAAzB,EAAiCH,MAAjC,EAAyC,KAAzC;AAEA,WAAO,SAASI,OAAT,GAAmB;AACxBF,MAAAA,OAAO,CAACG,mBAAR,CAA4B,UAA5B,EAAwCT,UAAxC,EAAoD,KAApD;AACAM,MAAAA,OAAO,CAACG,mBAAR,CAA4B,WAA5B,EAAyCN,WAAzC,EAAsD,KAAtD;AACAG,MAAAA,OAAO,CAACG,mBAAR,CAA4B,MAA5B,EAAoCL,MAApC,EAA4C,KAA5C;AACD,KAJD;AAKD,GAhCD,EAgCG,CAACf,QAAD,EAAWG,YAAX,CAhCH;;AAkCA,SAAO;AAAEG,IAAAA,cAAc,EAAdA,cAAF;AAAkBE,IAAAA,WAAW,EAAXA;AAAlB,GAAP;AACD","sourcesContent":["import React from \"react\";\n\nexport default function useDragAndDropZoneEvents({ dropArea = () => document.body, handleChange }) {\n const [isDraggingOver, setisDraggingOver] = React.useState(false);\n const [isDragLeave, setIsDragLeave] = React.useState(false);\n\n React.useEffect(() => {\n function onDragOver(event) {\n setisDraggingOver(() => true);\n setIsDragLeave(() => false);\n // this prevent images from rendering on the browser\n event.preventDefault();\n }\n\n function onDragLeave() {\n setisDraggingOver(() => false);\n setIsDragLeave(() => true);\n }\n\n function onDrop(event) {\n const fromDrop = true;\n // this prevent images from rendering on the browser\n setisDraggingOver(() => false);\n setIsDragLeave(() => true);\n event.preventDefault();\n handleChange(event, fromDrop);\n }\n\n const element = dropArea();\n element.addEventListener(\"dragover\", onDragOver, false);\n element.addEventListener(\"dragleave\", onDragLeave, false);\n element.addEventListener(\"drop\", onDrop, false);\n\n return function cleanup() {\n element.removeEventListener(\"dragover\", onDragOver, false);\n element.removeEventListener(\"dragleave\", onDragLeave, false);\n element.removeEventListener(\"drop\", onDrop, false);\n };\n }, [dropArea, handleChange]);\n\n return { isDraggingOver, isDragLeave };\n}\n"],"file":"useDragAndDropEvents.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paprika/uploader",
3
- "version": "4.1.1",
3
+ "version": "4.1.3-next.0",
4
4
  "description": "The Uploader component lets you upload files and see progress.",
5
5
  "author": "@paprika",
6
6
  "main": "lib/index.js",
@@ -16,11 +16,11 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@babel/runtime-corejs2": "^7.3.1",
19
- "@paprika/button": "^1.1.13",
19
+ "@paprika/button": "^1.1.14",
20
20
  "@paprika/helpers": "^2.4.0",
21
21
  "@paprika/icon": "^2.1.7",
22
- "@paprika/popover": "^2.0.5",
23
- "@paprika/raw-button": "^1.0.13",
22
+ "@paprika/popover": "^2.0.6",
23
+ "@paprika/raw-button": "^1.0.14",
24
24
  "@paprika/stylers": "^1.1.7",
25
25
  "@paprika/tokens": "^2.0.0",
26
26
  "prop-types": "^15.7.2",