@bigbinary/neeto-image-uploader-frontend 4.0.13 → 4.0.14
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/dist/.ready +1 -1
- package/dist/AssetLibrary.js +2 -2
- package/dist/ImageForm.js +2 -2
- package/dist/ImageUploader.js +2 -2
- package/dist/cjs/AssetLibrary.js +2 -2
- package/dist/cjs/ImageForm.js +2 -2
- package/dist/cjs/ImageUploader.js +2 -2
- package/dist/cjs/hooks.js +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/v2/AssetLibrary.js +2 -2
- package/dist/cjs/v2/ImageForm.js +2 -2
- package/dist/cjs/v2/ImageUploader.js +2 -2
- package/dist/cjs/v2/hooks.js +1 -1
- package/dist/cjs/v2/index.js +2 -2
- package/dist/hooks.js +1 -1
- package/dist/{index-ByiQIHFV.js → index-BYfso12Q.js} +14 -6
- package/dist/index-BYfso12Q.js.map +1 -0
- package/dist/{index-Btd2LbOZ.js → index-BlUNJMFN.js} +13 -3
- package/dist/index-BlUNJMFN.js.map +1 -0
- package/dist/{index-DJjmk0Nc.js → index-C7wF6PXg.js} +14 -6
- package/dist/index-C7wF6PXg.js.map +1 -0
- package/dist/{index-BP6z5Bmi.js → index-D--_BhYf.js} +13 -3
- package/dist/index-D--_BhYf.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/{useImageUploader-BsSpqUky.js → useImageUploader-BWLT38Jh.js} +25 -18
- package/dist/useImageUploader-BWLT38Jh.js.map +1 -0
- package/dist/{useImageUploader-TOt_v6Rn.js → useImageUploader-C0LPNMXM.js} +25 -18
- package/dist/useImageUploader-C0LPNMXM.js.map +1 -0
- package/dist/{useImageUploader-J3bippyP.js → useImageUploader-D8EKfvhs.js} +25 -18
- package/dist/useImageUploader-D8EKfvhs.js.map +1 -0
- package/dist/{useImageUploader-uFdwIcWA.js → useImageUploader-oEM4sZhG.js} +25 -18
- package/dist/useImageUploader-oEM4sZhG.js.map +1 -0
- package/dist/v2/AssetLibrary.js +2 -2
- package/dist/v2/ImageForm.js +2 -2
- package/dist/v2/ImageUploader.js +2 -2
- package/dist/v2/hooks.js +1 -1
- package/dist/v2/index.js +2 -2
- package/package.json +12 -12
- package/dist/index-BP6z5Bmi.js.map +0 -1
- package/dist/index-Btd2LbOZ.js.map +0 -1
- package/dist/index-ByiQIHFV.js.map +0 -1
- package/dist/index-DJjmk0Nc.js.map +0 -1
- package/dist/useImageUploader-BsSpqUky.js.map +0 -1
- package/dist/useImageUploader-J3bippyP.js.map +0 -1
- package/dist/useImageUploader-TOt_v6Rn.js.map +0 -1
- package/dist/useImageUploader-uFdwIcWA.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useImageUploader-BsSpqUky.js","sources":["../app/javascript/src/hooks/useImageUploader.js"],"sourcesContent":["import { DirectUpload } from \"@rails/activestorage\";\nimport { t } from \"i18next\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Toastr } from \"neetoui\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"components/common/constants\";\nimport {\n CLOUD_FLARE,\n IS_DEVELOPMENT_OR_HEROKU_ENV,\n IMAGE_UPLOADER_BASE_URL,\n} from \"src/constants\";\nimport { IMAGEKIT_MAX_PIXELS, MAX_DIMENSION } from \"src/constants/query\";\n\nimport { generateASCIIFileName, isGif } from \"./utils\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/${IMAGE_UPLOADER_BASE_URL}/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((error, blob) => {\n if (error) {\n Toastr.error(\n error?.message ||\n t(\"neetoImageUploader.imageUpload.fileUploadFailed\")\n );\n setIsUploading(false);\n\n return;\n }\n\n if (!blob) {\n Toastr.error(t(\"neetoImageUploader.imageUpload.noBlobReturned\"));\n setIsUploading(false);\n\n return;\n }\n\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n const bitmap = await createImageBitmap(file);\n const pixels = bitmap.width * bitmap.height;\n bitmap.close();\n\n if (pixels > IMAGEKIT_MAX_PIXELS) {\n Toastr.error(FILE_ERRORS[\"file-resolution-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["useImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","concat","window","location","origin","IMAGE_UPLOADER_BASE_URL","handleUploadProgress","e","fileSize","setUploadProgress","loaded","percent","Math","round","equals","total","directUpload","file","upload","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","event","percentComplete","create","error","blob","Toastr","message","t","payload","id","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","url","blob_url","directUploadsApi","update","result","mergeRight","keysToCamelCase","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","bitmap","pixels","imagekit","wrap","_callee$","_context","prev","next","createImageBitmap","sent","width","height","close","IMAGEKIT_MAX_PIXELS","FILE_ERRORS","autoClose","abrupt","ImageKit","fileName","generateASCIIFileName","name","folder","customMetadata","appName","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","formData","FormData","append","onload","_callee2","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","revokeObjectURL","cloudflareImageApi","generate","_objectSpread","contentType","type","variants","byteSize","size","checksum","response","data","errors","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","assetsUploaderService","CLOUD_FLARE"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useImageUploader-J3bippyP.js","sources":["../app/javascript/src/hooks/useImageUploader.js"],"sourcesContent":["import { DirectUpload } from \"@rails/activestorage\";\nimport { t } from \"i18next\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Toastr } from \"neetoui\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"components/common/constants\";\nimport {\n CLOUD_FLARE,\n IS_DEVELOPMENT_OR_HEROKU_ENV,\n IMAGE_UPLOADER_BASE_URL,\n} from \"src/constants\";\nimport { IMAGEKIT_MAX_PIXELS, MAX_DIMENSION } from \"src/constants/query\";\n\nimport { generateASCIIFileName, isGif } from \"./utils\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/${IMAGE_UPLOADER_BASE_URL}/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((error, blob) => {\n if (error) {\n Toastr.error(\n error?.message ||\n t(\"neetoImageUploader.imageUpload.fileUploadFailed\")\n );\n setIsUploading(false);\n\n return;\n }\n\n if (!blob) {\n Toastr.error(t(\"neetoImageUploader.imageUpload.noBlobReturned\"));\n setIsUploading(false);\n\n return;\n }\n\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n const bitmap = await createImageBitmap(file);\n const pixels = bitmap.width * bitmap.height;\n bitmap.close();\n\n if (pixels > IMAGEKIT_MAX_PIXELS) {\n Toastr.error(FILE_ERRORS[\"file-resolution-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["useImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","concat","window","location","origin","IMAGE_UPLOADER_BASE_URL","handleUploadProgress","e","fileSize","setUploadProgress","loaded","percent","Math","round","equals","total","directUpload","file","upload","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","event","percentComplete","create","error","blob","Toastr","message","t","payload","id","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","url","blob_url","directUploadsApi","update","result","mergeRight","keysToCamelCase","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","bitmap","pixels","imagekit","wrap","_callee$","_context","prev","next","createImageBitmap","sent","width","height","close","IMAGEKIT_MAX_PIXELS","FILE_ERRORS","autoClose","abrupt","ImageKit","fileName","generateASCIIFileName","name","folder","customMetadata","appName","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","formData","FormData","append","onload","_callee2","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","revokeObjectURL","cloudflareImageApi","generate","_objectSpread","contentType","type","variants","byteSize","size","checksum","response","data","errors","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","assetsUploaderService","CLOUD_FLARE"],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAGhB;AAAA,EAAA,IAAAC,qBAAA,GAAAD,IAAA,CAFJE,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAGE,cAAI,GAAAF,qBAAA;IAAAG,mBAAA,GAAAJ,IAAA,CACvBK,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,MAAA,GAAGD,cAAI,GAAAC,mBAAA;AAErB,EAAA,IAAME,sBAAsB,GAAA,EAAA,CAAAC,MAAA,CAAMC,MAAM,CAACC,QAAQ,CAACC,MAAM,EAAA,GAAA,CAAA,CAAAH,MAAA,CAAII,oCAAuB,EAAA,gBAAA,CAAgB;EAEnG,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,CAAC,EAAEC,QAAQ,EAAEC,iBAAiB,EAAK;AAC/D,IAAA,IAAIF,CAAC,CAACG,MAAM,IAAIF,QAAQ,EAAE;AACxB,MAAA,IAAMG,OAAO,GAAGC,IAAI,CAACC,KAAK,CAAEN,CAAC,CAACG,MAAM,GAAGF,QAAQ,GAAI,GAAG,CAAC;MACvDC,iBAAiB,CAACE,OAAO,CAAC;AAC5B,IAAA;AACAG,IAAAA,YAAM,CAACP,CAAC,CAACG,MAAM,EAAEH,CAAC,CAACQ,KAAK,CAAC,IAAIN,iBAAiB,CAAC,GAAG,CAAC;EACrD,CAAC;EAED,IAAMO,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAI,EAAER,iBAAiB,EAAK;IAChD,IAAI;MACFV,cAAc,CAAC,IAAI,CAAC;MACpB,IAAMmB,MAAM,GAAG,IAAIC,0BAAY,CAACF,IAAI,EAAE,qBAAqB,EAAE;AAC3DG,QAAAA,gCAAgC,EAAE,SAAlCA,gCAAgCA,CAAEC,GAAG,EAAI;UACvCA,GAAG,CAACH,MAAM,CAACI,gBAAgB,CAAC,UAAU,EAAE,UAAAC,KAAK,EAAI;AAC/C,YAAA,IAAMC,eAAe,GAAGZ,IAAI,CAACC,KAAK,CAC/BU,KAAK,CAACb,MAAM,GAAGa,KAAK,CAACR,KAAK,GAAI,GACjC,CAAC;YACDN,iBAAiB,CAACe,eAAe,CAAC;AACpC,UAAA,CAAC,CAAC;AACJ,QAAA;AACF,OAAC,CAAC;AAEFN,MAAAA,MAAM,CAACO,MAAM,CAAC,UAACC,KAAK,EAAEC,IAAI,EAAK;AAC7B,QAAA,IAAID,KAAK,EAAE;AACTE,UAAAA,MAAM,CAACF,KAAK,CACV,CAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEG,OAAO,KACZC,SAAC,CAAC,iDAAiD,CACvD,CAAC;UACD/B,cAAc,CAAC,KAAK,CAAC;AAErB,UAAA;AACF,QAAA;QAEA,IAAI,CAAC4B,IAAI,EAAE;AACTC,UAAAA,MAAM,CAACF,KAAK,CAACI,SAAC,CAAC,+CAA+C,CAAC,CAAC;UAChE/B,cAAc,CAAC,KAAK,CAAC;AAErB,UAAA;AACF,QAAA;AAEA,QAAA,IAAMgC,OAAO,GAAG;UACdC,EAAE,EAAEL,IAAI,CAACM,SAAS;AAClBF,UAAAA,OAAO,EAAE;AACPG,YAAAA,QAAQ,EAAE;AACRC,cAAAA,eAAe,EAAEC,wBAAW,CAACC,YAAY,CAACC,YAAY;cACtDC,GAAG,EAAEZ,IAAI,CAACa;AACZ;AACF;SACD;AACDC,QAAAA,sBAAgB,CAACC,MAAM,CAACX,OAAO,CAAC;QAEhC,IAAMY,MAAM,GAAGC,gBAAU,CAACC,yBAAe,CAAClB,IAAI,CAAC,EAAE;UAC/CY,GAAG,EAAEZ,IAAI,CAACa;AACZ,SAAC,CAAC;QAEF5C,gBAAgB,CAAC+C,MAAM,CAAC;AAC1B,MAAA,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOjB,KAAK,EAAE;AACdE,MAAAA,MAAM,CAACF,KAAK,CAACA,KAAK,CAAC;AACrB,IAAA,CAAC,SAAS;MACR3B,cAAc,CAAC,KAAK,CAAC;AACvB,IAAA;EACF,CAAC;AAED,EAAA,IAAM+C,cAAc,gBAAA,YAAA;AAAA,IAAA,IAAAC,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAOlC,IAAI,EAAEmC,WAAW,EAAA;AAAA,MAAA,IAAAC,MAAA,EAAAC,MAAA,EAAAC,QAAA,EAAAZ,MAAA;AAAA,MAAA,OAAAM,mBAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;YAAA,OACxBC,iBAAiB,CAAC5C,IAAI,CAAC;AAAA,UAAA,KAAA,CAAA;YAAtCoC,MAAM,GAAAK,QAAA,CAAAI,IAAA;AACNR,YAAAA,MAAM,GAAGD,MAAM,CAACU,KAAK,GAAGV,MAAM,CAACW,MAAM;YAC3CX,MAAM,CAACY,KAAK,EAAE;YAAC,IAAA,EAEXX,MAAM,GAAGY,yBAAmB,CAAA,EAAA;AAAAR,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAC9BhC,YAAAA,MAAM,CAACF,KAAK,CAACyC,qBAAW,CAAC,2BAA2B,CAAC,EAAE;AACrDC,cAAAA,SAAS,EAAE;AACb,aAAC,CAAC;YAAC,OAAAV,QAAA,CAAAW,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAX,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;YAMGJ,QAAQ,GAAG,IAAIe,qBAAQ,CAC3B1B,gBAAU,CAACR,wBAAW,CAACmB,QAAQ,EAAE;AAAEvD,cAAAA,sBAAsB,EAAtBA;AAAuB,aAAC,CAC7D,CAAC;YACDD,cAAc,CAAC,IAAI,CAAC;AAAC2D,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;YAAA,OACAL,QAAQ,CAACrC,MAAM,CAAC;AACnCG,cAAAA,GAAG,EAAE+B,WAAW;AAChBnC,cAAAA,IAAI,EAAJA,IAAI;AACJsD,cAAAA,QAAQ,EAAEC,2BAAqB,CAACvD,IAAI,CAACwD,IAAI,CAAC;AAC1CC,cAAAA,MAAM,EAAEtC,wBAAW,CAACmB,QAAQ,CAACmB,MAAM;AACnCC,cAAAA,cAAc,EAAE;AACdxC,gBAAAA,eAAe,EAAEC,wBAAW,CAACC,YAAY,CAACC,YAAY;gBACtDsC,OAAO,EAAExC,wBAAW,CAACwC;AACvB;AACF,aAAC,CAAC;AAAA,UAAA,KAAA,EAAA;YATIjC,MAAM,GAAAe,QAAA,CAAAI,IAAA;YAWZlE,gBAAgB,CAAC+C,MAAM,CAAC;AAACe,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;YAAAD,QAAA,CAAAmB,EAAA,GAAAnB,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEzB9B,YAAAA,MAAM,CAACF,KAAK,CAAAgC,QAAA,CAAAmB,EAAM,CAAC;AAAC,UAAA,KAAA,EAAA;AAAAnB,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;YAEpB5D,cAAc,CAAC,KAAK,CAAC;YAAC,OAAA2D,QAAA,CAAAoB,MAAA,CAAA,EAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAApB,QAAA,CAAAqB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAA5B,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CAEzB,CAAA,CAAA;AAAA,IAAA,OAAA,SAnCKL,cAAcA,CAAAkC,EAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAlC,KAAA,CAAAmC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAmCnB;EAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAInE,IAAI,EAAER,iBAAiB,EAAK;AACzD,IAAA,IAAM4E,GAAG,GAAG,IAAIC,KAAK,EAAE;IACvBD,GAAG,CAACE,GAAG,GAAGC,GAAG,CAACC,eAAe,CAACxE,IAAI,CAAC;AACnC,IAAA,IAAMyE,QAAQ,GAAG,IAAIC,QAAQ,EAAE;AAC/BD,IAAAA,QAAQ,CAACE,MAAM,CAAC,MAAM,EAAE3E,IAAI,CAAC;IAE7BoE,GAAG,CAACQ,MAAM,gBAAA7C,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAA4C,QAAAA,GAAA;AAAA,MAAA,IAAA/B,KAAA,EAAAC,MAAA,EAAA+B,qBAAA,EAAAC,SAAA,EAAAC,sBAAA,EAAAtD,MAAA,EAAAuD,UAAA,EAAAC,eAAA;AAAA,MAAA,OAAAlD,mBAAA,CAAAO,IAAA,CAAA,SAAA4C,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA1C,IAAA,GAAA0C,SAAA,CAAAzC,IAAA;AAAA,UAAA,KAAA,CAAA;YACXyB,GAAG,CAACQ,MAAM,GAAG,IAAI;YACT9B,KAAK,GAAasB,GAAG,CAArBtB,KAAK,EAAEC,MAAM,GAAKqB,GAAG,CAAdrB,MAAM;AAAA,YAAA,IAAA,EACjBD,KAAK,GAAGuC,mBAAa,IAAItC,MAAM,GAAGsC,mBAAa,CAAA,EAAA;AAAAD,cAAAA,SAAA,CAAAzC,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AACjDhC,YAAAA,MAAM,CAACF,KAAK,CAACyC,qBAAW,CAAC,0BAA0B,CAAC,EAAE;AACpDC,cAAAA,SAAS,EAAE;AACb,aAAC,CAAC;YAAC,OAAAiC,SAAA,CAAAhC,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;AAILmB,YAAAA,GAAG,CAACe,eAAe,CAAClB,GAAG,CAACE,GAAG,CAAC;YAE5BxF,cAAc,CAAC,IAAI,CAAC;AAACsG,YAAAA,SAAA,CAAA1C,IAAA,GAAA,CAAA;AAAA0C,YAAAA,SAAA,CAAAzC,IAAA,GAAA,EAAA;AAAA,YAAA,OAIT4C,wBAAkB,CAACC,QAAQ,EAAE;AAAA,UAAA,KAAA,EAAA;YAAAV,qBAAA,GAAAM,SAAA,CAAAvC,IAAA;AAD3BkC,YAAAA,SAAS,GAAAD,qBAAA,CAAnBpD,MAAM,CAAIqD,SAAS;AAAAK,YAAAA,SAAA,CAAAzC,IAAA,GAAA,EAAA;YAAA,OAGI4C,wBAAkB,CAACtF,MAAM,CAAC;AACjDqB,cAAAA,GAAG,EAAEyD,SAAS;AACdN,cAAAA,QAAQ,EAARA,QAAQ;AACRjF,cAAAA,iBAAiB,EAAjBA;AACF,aAAC,CAAC;AAAA,UAAA,KAAA,EAAA;YAAAwF,sBAAA,GAAAI,SAAA,CAAAvC,IAAA;YAJMnB,MAAM,GAAAsD,sBAAA,CAANtD,MAAM;AAMRuD,YAAAA,UAAU,GAAAQ,aAAA,CAAAA,aAAA,KACX/D,MAAM,CAAA,EAAA,EAAA,EAAA;cACTgE,WAAW,EAAE1F,IAAI,CAAC2F,IAAI;AACtB1E,cAAAA,QAAQ,EAAAwE,aAAA,CAAAA,aAAA,KAAO/D,MAAM,CAAA,EAAA,EAAA,EAAA;AAAEoB,gBAAAA,KAAK,EAALA,KAAK;AAAEC,gBAAAA,MAAM,EAANA;eAAM,CAAE;AACtCzB,cAAAA,GAAG,EAAEI,MAAM,CAACkE,QAAQ,CAAC,CAAC,CAAC;cACvBC,QAAQ,EAAE7F,IAAI,CAAC8F,IAAI;cACnBC,QAAQ,EAAErE,MAAM,CAACX;AAAE,aAAA,CAAA;YAGrBpC,gBAAgB,CAACsG,UAAU,CAAC;YAC5BnG,cAAc,CAAC,KAAK,CAAC;AAACsG,YAAAA,SAAA,CAAAzC,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAAyC,YAAAA,SAAA,CAAA1C,IAAA,GAAA,EAAA;YAAA0C,SAAA,CAAAxB,EAAA,GAAAwB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEtBzE,YAAAA,MAAM,CAACF,KAAK,CAAA,CAAAyE,eAAA,GAACE,SAAA,CAAAxB,EAAA,CAAMoC,QAAQ,MAAA,IAAA,IAAAd,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAdA,eAAA,CAAgBe,IAAI,MAAA,IAAA,IAAAf,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAApBA,eAAA,CAAsBgB,MAAM,MAAA,IAAA,IAAAhB,eAAA,gBAAAA,eAAA,GAA5BA,eAAA,CAA+B,CAAC,CAAC,MAAA,IAAA,IAAAA,eAAA,uBAAjCA,eAAA,CAAmCtE,OAAO,EAAE;AACvDuC,cAAAA,SAAS,EAAE;AACb,aAAC,CAAC;YACFrE,cAAc,CAAC,KAAK,CAAC;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAsG,SAAA,CAAAtB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAAe,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CAEzB,CAAA,CAAA;EACH,CAAC;AAED,EAAA,IAAMsB,UAAU,GAAG,SAAbA,UAAUA,CAAInG,IAAI,EAA+B;AAAA,IAAA,IAA7BR,iBAAiB,GAAA0E,SAAA,CAAAkC,MAAA,GAAA,CAAA,IAAAlC,SAAA,CAAA,CAAA,CAAA,KAAAmC,SAAA,GAAAnC,SAAA,CAAA,CAAA,CAAA,GAAGtF,cAAI;AAChD,IAAA,IAAI0H,WAAK,CAACtG,IAAI,CAAC,EAAE;AAEjB,IAAA,IAAMT,QAAQ,GAAGS,IAAI,CAAC8F,IAAI;AAC1B,IAAA,IAAM3D,WAAW,GAAG,IAAIoE,cAAc,EAAE;IACxCpE,WAAW,CAAClC,MAAM,CAACI,gBAAgB,CAAC,UAAU,EAAE,UAAAf,CAAC,EAAI;AACnDD,MAAAA,oBAAoB,CAACC,CAAC,EAAEC,QAAQ,EAAEC,iBAAiB,CAAC;AACtD,IAAA,CAAC,CAAC;AAEF,IAAA,IAAIgH,yCAA4B,IAAIC,WAAK,CAACzG,IAAI,CAAC,EAAE;AAC/CD,MAAAA,YAAY,CAACC,IAAI,EAAER,iBAAiB,CAAC;AAErC,MAAA;AACF,IAAA;AAEA,IAAA,IAAI2B,wBAAW,CAACuF,qBAAqB,KAAKC,wBAAW,EAAE;AACrDxC,MAAAA,qBAAqB,CAACnE,IAAI,EAAER,iBAAiB,CAAC;AAE9C,MAAA;AACF,IAAA;AAEAqC,IAAAA,cAAc,CAAC7B,IAAI,EAAEmC,WAAW,CAAC;EACnC,CAAC;EAED,OAAO;AAAEgE,IAAAA,UAAU,EAAVA;GAAY;AACvB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useImageUploader-TOt_v6Rn.js","sources":["../app/javascript/src/v2/hooks/useImageUploader.js"],"sourcesContent":["import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { t } from \"i18next\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"components/common/constants\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport {\n CLOUD_FLARE,\n IS_DEVELOPMENT_OR_HEROKU_ENV,\n IMAGE_UPLOADER_BASE_URL,\n} from \"src/constants\";\nimport { IMAGEKIT_MAX_PIXELS, MAX_DIMENSION } from \"src/constants/query\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/${IMAGE_UPLOADER_BASE_URL}/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((error, blob) => {\n if (error) {\n Toastr.error(\n error?.message ||\n t(\"neetoImageUploader.imageUpload.fileUploadFailed\")\n );\n setIsUploading(false);\n\n return;\n }\n\n if (!blob) {\n Toastr.error(t(\"neetoImageUploader.imageUpload.noBlobReturned\"));\n setIsUploading(false);\n\n return;\n }\n\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n const bitmap = await createImageBitmap(file);\n const pixels = bitmap.width * bitmap.height;\n bitmap.close();\n\n if (pixels > IMAGEKIT_MAX_PIXELS) {\n Toastr.error(FILE_ERRORS[\"file-resolution-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["useImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","concat","window","location","origin","IMAGE_UPLOADER_BASE_URL","handleUploadProgress","e","fileSize","setUploadProgress","loaded","percent","Math","round","equals","total","directUpload","file","upload","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","event","percentComplete","create","error","blob","Toastr","message","t","payload","id","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","url","blob_url","directUploadsApi","update","result","mergeRight","keysToCamelCase","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","bitmap","pixels","imagekit","wrap","_callee$","_context","prev","next","createImageBitmap","sent","width","height","close","IMAGEKIT_MAX_PIXELS","FILE_ERRORS","autoClose","abrupt","ImageKit","fileName","generateASCIIFileName","name","folder","customMetadata","appName","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","formData","FormData","append","onload","_callee2","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","revokeObjectURL","cloudflareImageApi","generate","_objectSpread","contentType","type","variants","byteSize","size","checksum","response","data","errors","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","assetsUploaderService","CLOUD_FLARE"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useImageUploader-uFdwIcWA.js","sources":["../app/javascript/src/v2/hooks/useImageUploader.js"],"sourcesContent":["import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { t } from \"i18next\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"components/common/constants\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport {\n CLOUD_FLARE,\n IS_DEVELOPMENT_OR_HEROKU_ENV,\n IMAGE_UPLOADER_BASE_URL,\n} from \"src/constants\";\nimport { IMAGEKIT_MAX_PIXELS, MAX_DIMENSION } from \"src/constants/query\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/${IMAGE_UPLOADER_BASE_URL}/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((error, blob) => {\n if (error) {\n Toastr.error(\n error?.message ||\n t(\"neetoImageUploader.imageUpload.fileUploadFailed\")\n );\n setIsUploading(false);\n\n return;\n }\n\n if (!blob) {\n Toastr.error(t(\"neetoImageUploader.imageUpload.noBlobReturned\"));\n setIsUploading(false);\n\n return;\n }\n\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n const bitmap = await createImageBitmap(file);\n const pixels = bitmap.width * bitmap.height;\n bitmap.close();\n\n if (pixels > IMAGEKIT_MAX_PIXELS) {\n Toastr.error(FILE_ERRORS[\"file-resolution-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["useImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","concat","window","location","origin","IMAGE_UPLOADER_BASE_URL","handleUploadProgress","e","fileSize","setUploadProgress","loaded","percent","Math","round","equals","total","directUpload","file","upload","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","event","percentComplete","create","error","blob","Toastr","message","t","payload","id","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","url","blob_url","directUploadsApi","update","result","mergeRight","keysToCamelCase","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","bitmap","pixels","imagekit","wrap","_callee$","_context","prev","next","createImageBitmap","sent","width","height","close","IMAGEKIT_MAX_PIXELS","FILE_ERRORS","autoClose","abrupt","ImageKit","fileName","generateASCIIFileName","name","folder","customMetadata","appName","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","formData","FormData","append","onload","_callee2","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","revokeObjectURL","cloudflareImageApi","generate","_objectSpread","contentType","type","variants","byteSize","size","checksum","response","data","errors","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","assetsUploaderService","CLOUD_FLARE"],"mappings":"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"}
|