Socket
Socket
Sign inDemoInstall

@s-ui/react-molecule-photo-uploader

Package Overview
Dependencies
Maintainers
4
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@s-ui/react-molecule-photo-uploader - npm Package Compare versions

Comparing version 1.13.0 to 1.14.0

11

CHANGELOG.md

@@ -5,2 +5,13 @@ # Change Log

# 1.14.0 (2020-06-08)
### Features
* add callback to uploadPhoto when image is modified ([a6246fb](https://github.com/SUI-Components/sui-components/commit/a6246fbd6f82c4053b3e99064b628c1697c8949f))
* add upload Callback ([416cb5c](https://github.com/SUI-Components/sui-components/commit/416cb5ccb09ead225e01ebc885955c11aca8bdbb))
* fix a typo ([529e331](https://github.com/SUI-Components/sui-components/commit/529e3312cc08f66e10a752f848f394ad0aafad16))
# 1.13.0 (2020-06-02)

@@ -7,0 +18,0 @@

6

lib/DragNotification.js

@@ -15,6 +15,6 @@ import React from 'react';

text = _ref.text;
return React.createElement(React.Fragment, null, show && React.createElement("div", {
return /*#__PURE__*/React.createElement(React.Fragment, null, show && /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME + "-notification"
}, React.createElement(MoleculeNotification, {
icon: React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(MoleculeNotification, {
icon: /*#__PURE__*/React.createElement(AtomIcon, {
size: ATOM_ICON_SIZES.extraLarge

@@ -21,0 +21,0 @@ }, icon),

@@ -16,7 +16,7 @@ import React from 'react';

var dropzoneClassName = cx(DRAG_STATE_CLASS_NAME, (_cx = {}, _cx[DRAG_STATE_CLASS_NAME + "--accepted"] = status === DRAG_STATE_STATUS_ACCEPTED, _cx[DRAG_STATE_CLASS_NAME + "--rejected"] = status === DRAG_STATE_STATUS_REJECTED, _cx));
return React.createElement("div", {
return /*#__PURE__*/React.createElement("div", {
className: dropzoneClassName
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: ATOM_ICON_SIZES.extraLarge
}, icon), React.createElement("div", {
}, icon), /*#__PURE__*/React.createElement("div", {
className: DRAG_STATE_CLASS_NAME + "-textState"

@@ -23,0 +23,0 @@ }, text));

@@ -0,1 +1,3 @@

import _regeneratorRuntime from "@babel/runtime/regenerator";
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import { formatToBase64 } from './photoTools';

@@ -84,8 +86,47 @@ import { DEFAULT_HAS_ERRORS_STATUS, DEFAULT_IMAGE_ROTATION_DEGREES, REJECT_FILES_REASONS } from './config';

};
export function callbackUploadPhotoHandler(_x, _x2, _x3) {
return _callbackUploadPhotoHandler.apply(this, arguments);
}
function _callbackUploadPhotoHandler() {
_callbackUploadPhotoHandler = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(blob, callbackUploadPhoto, oldUrl) {
var response;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!callbackUploadPhoto) {
_context2.next = 10;
break;
}
_context2.prev = 1;
_context2.next = 4;
return callbackUploadPhoto(blob, oldUrl);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response.url);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](1);
case 10:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[1, 8]]);
}));
return _callbackUploadPhotoHandler.apply(this, arguments);
}
export var prepareFiles = function prepareFiles(_ref2) {
var handlePhotosRejected = _ref2.handlePhotosRejected,
var callbackUploadPhoto = _ref2.callbackUploadPhoto,
currentFiles = _ref2.currentFiles,
newFiles = _ref2.newFiles,
defaultFormatToBase64Options = _ref2.defaultFormatToBase64Options,
errorCorruptedPhotoUploadedText = _ref2.errorCorruptedPhotoUploadedText,
handlePhotosRejected = _ref2.handlePhotosRejected,
newFiles = _ref2.newFiles,
setCorruptedFileError = _ref2.setCorruptedFileError,

@@ -102,36 +143,61 @@ setFiles = _ref2.setFiles,

});
}).then(function (_ref3) {
var file = _ref3.file,
blob = _ref3.blob,
originalBase64 = _ref3.originalBase64,
croppedBase64 = _ref3.croppedBase64,
rotation = _ref3.rotation,
_ref3$hasErrors = _ref3.hasErrors,
hasErrors = _ref3$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref3$hasErrors;
}).then( /*#__PURE__*/function () {
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
var file, blob, originalBase64, croppedBase64, rotation, _ref3$hasErrors, hasErrors, errorText, url;
if (hasErrors) {
var errorText = errorCorruptedPhotoUploadedText.replace('%{filepath}', nextFile.path);
handlePhotosRejected([{
rejectedFile: nextFile,
reason: REJECT_FILES_REASONS.loadFailed
}]);
setCorruptedFileError(errorText);
} else {
currentFiles.push({
blob: blob,
file: file,
hasErrors: hasErrors,
isModified: false,
isNew: true,
originalBase64: originalBase64,
properties: {
path: nextFile.path,
size: nextFile.size,
lastModified: nextFile.lastModified
},
preview: croppedBase64,
rotation: rotation
});
}
}).then(function () {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
file = _ref3.file, blob = _ref3.blob, originalBase64 = _ref3.originalBase64, croppedBase64 = _ref3.croppedBase64, rotation = _ref3.rotation, _ref3$hasErrors = _ref3.hasErrors, hasErrors = _ref3$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref3$hasErrors;
if (!hasErrors) {
_context.next = 7;
break;
}
errorText = errorCorruptedPhotoUploadedText.replace('%{filepath}', nextFile.path);
handlePhotosRejected([{
rejectedFile: nextFile,
reason: REJECT_FILES_REASONS.loadFailed
}]);
setCorruptedFileError(errorText);
_context.next = 11;
break;
case 7:
_context.next = 9;
return callbackUploadPhotoHandler(blob, callbackUploadPhoto);
case 9:
url = _context.sent;
currentFiles.push({
blob: blob,
file: file,
hasErrors: hasErrors,
isModified: false,
isNew: true,
originalBase64: originalBase64,
properties: {
path: nextFile.path,
size: nextFile.size,
lastModified: nextFile.lastModified
},
preview: croppedBase64,
rotation: rotation,
url: url
});
case 11:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function (_x4) {
return _ref4.apply(this, arguments);
};
}()).then(function () {
setFiles([].concat(currentFiles));

@@ -149,9 +215,9 @@

};
export var loadInitialPhotos = function loadInitialPhotos(_ref4) {
var initialPhotos = _ref4.initialPhotos,
defaultFormatToBase64Options = _ref4.defaultFormatToBase64Options,
setInitialDownloadError = _ref4.setInitialDownloadError,
setFiles = _ref4.setFiles,
_callbackPhotosUploaded = _ref4._callbackPhotosUploaded,
setIsLoading = _ref4.setIsLoading;
export var loadInitialPhotos = function loadInitialPhotos(_ref5) {
var initialPhotos = _ref5.initialPhotos,
defaultFormatToBase64Options = _ref5.defaultFormatToBase64Options,
setInitialDownloadError = _ref5.setInitialDownloadError,
setFiles = _ref5.setFiles,
_callbackPhotosUploaded = _ref5._callbackPhotosUploaded,
setIsLoading = _ref5.setIsLoading;
var filesWithBase64 = initialPhotos.map(function (url) {

@@ -164,8 +230,8 @@ return formatToBase64({

Promise.all(filesWithBase64).then(function (newFiles) {
var readyPhotos = newFiles.map(function (_ref5) {
var blob = _ref5.blob,
croppedBase64 = _ref5.croppedBase64,
url = _ref5.url,
_ref5$hasErrors = _ref5.hasErrors,
hasErrors = _ref5$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref5$hasErrors;
var readyPhotos = newFiles.map(function (_ref6) {
var blob = _ref6.blob,
croppedBase64 = _ref6.croppedBase64,
url = _ref6.url,
_ref6$hasErrors = _ref6.hasErrors,
hasErrors = _ref6$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref6$hasErrors;
return {

@@ -172,0 +238,0 @@ blob: blob,

@@ -34,2 +34,3 @@ import React, { useState } from 'react';

callbackPhotosUploaded = _ref$callbackPhotosUp === void 0 ? function () {} : _ref$callbackPhotosUp,
callbackUploadPhoto = _ref.callbackUploadPhoto,
deleteIcon = _ref.deleteIcon,

@@ -213,2 +214,3 @@ _ref$disableScrollToB = _ref.disableScrollToBottom,

_scrollToBottom: _scrollToBottom,
callbackUploadPhoto: callbackUploadPhoto,
_callbackPhotosUploaded: _callbackPhotosUploaded

@@ -251,7 +253,7 @@ });

return React.createElement(React.Fragment, null, React.createElement("div", {
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME
}, React.createElement("div", getRootProps({
}, /*#__PURE__*/React.createElement("div", getRootProps({
className: dropzoneClassName
}), React.createElement("input", getInputProps()), Boolean(!files.length) && !isDragActive && React.createElement(InitialState, {
}), /*#__PURE__*/React.createElement("input", getInputProps()), Boolean(!files.length) && !isDragActive && /*#__PURE__*/React.createElement(InitialState, {
buttonColor: addPhotoButtonColor,

@@ -264,3 +266,3 @@ buttonDesign: addPhotoButtonDesign,

dividerText: dragPhotoDividerTextInitialContent
}), Boolean(files.length) && React.createElement(PhotosPreview, {
}), Boolean(files.length) && /*#__PURE__*/React.createElement(PhotosPreview, {
_callbackPhotosUploaded: _callbackPhotosUploaded,

@@ -270,2 +272,3 @@ _scrollToBottom: _scrollToBottom,

addPhotoTextSkeleton: addPhotoTextSkeleton,
callbackUploadPhoto: callbackUploadPhoto,
defaultFormatToBase64Options: DEFAULT_FORMAT_TO_BASE_64_OPTIONS,

@@ -287,18 +290,18 @@ deleteIcon: deleteIcon,

thumbIconSize: thumbIconSize
}), isDragAccept && !isPhotoUploaderFully() && !isLoading && React.createElement(DragState, {
}), isDragAccept && !isPhotoUploaderFully() && !isLoading && /*#__PURE__*/React.createElement(DragState, {
icon: dragPhotosIcon(),
text: dropPhotosHereText
}), isDragAccept && isPhotoUploaderFully() && React.createElement(DragState, {
}), isDragAccept && isPhotoUploaderFully() && /*#__PURE__*/React.createElement(DragState, {
icon: rejectPhotosIcon(),
status: DRAG_STATE_STATUS_REJECTED,
text: limitPhotosUploadedText
}), isDragAccept && !isPhotoUploaderFully() && isLoading && React.createElement(DragState, {
}), isDragAccept && !isPhotoUploaderFully() && isLoading && /*#__PURE__*/React.createElement(DragState, {
icon: rejectPhotosIcon(),
status: DRAG_STATE_STATUS_REJECTED,
text: uploadingPhotosText
}), isDragReject && React.createElement(DragState, {
}), isDragReject && /*#__PURE__*/React.createElement(DragState, {
icon: rejectPhotosIcon(),
status: DRAG_STATE_STATUS_REJECTED,
text: errorFormatPhotoUploadedText
})), React.createElement(DragNotification, {
})), /*#__PURE__*/React.createElement(DragNotification, {
icon: infoIcon(),

@@ -305,0 +308,0 @@ onCloseCallback: function onCloseCallback() {

@@ -23,17 +23,17 @@ import React from 'react';

dividerText = _ref$dividerText === void 0 ? ALTERNATIVE_ACTION_TEXT : _ref$dividerText;
return React.createElement("div", {
return /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME + "-initialState"
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME + "-iconInitialState"
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: ATOM_ICON_SIZES.extraLarge
}, icon)), React.createElement("div", {
}, icon)), /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME + "-textState"
}, React.createElement("span", {
}, /*#__PURE__*/React.createElement("span", {
className: BASE_CLASS_NAME + "-textStateText"
}, text), React.createElement("span", {
}, text), /*#__PURE__*/React.createElement("span", {
className: BASE_CLASS_NAME + "-textStateDivider"
}, dividerText)), React.createElement("div", {
}, dividerText)), /*#__PURE__*/React.createElement("div", {
className: BASE_CLASS_NAME + "-buttonState"
}, React.createElement(Button, {
}, /*#__PURE__*/React.createElement(Button, {
color: buttonColor,

@@ -40,0 +40,0 @@ design: buttonDesign,

@@ -0,1 +1,3 @@

import _regeneratorRuntime from "@babel/runtime/regenerator";
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import React from 'react';

@@ -9,2 +11,3 @@ import PropTypes from 'prop-types';

import { formatToBase64, cropAndRotateImage, base64ToBlob } from './photoTools';
import { callbackUploadPhotoHandler } from './fileTools';
import { BASE_CLASS_NAME, THUMB_CLASS_NAME, THUMB_SORTABLE_CLASS_NAME, DEFAULT_NOTIFICATION_ERROR, DEFAULT_HAS_ERRORS_STATUS, DEFAULT_IMAGE_ROTATION_DEGREES, ROTATION_DIRECTION, DEFAULT_IMAGE_ASPECT_RATIO, DEFAULT_MAX_IMAGE_HEIGHT, DEFAULT_MAX_IMAGE_WIDTH } from './config';

@@ -20,2 +23,3 @@ var PREVIEW_CARD_CLASS_NAME = BASE_CLASS_NAME + "-preview";

addPhotoTextSkeleton = _ref.addPhotoTextSkeleton,
callbackUploadPhoto = _ref.callbackUploadPhoto,
defaultFormatToBase64Options = _ref.defaultFormatToBase64Options,

@@ -69,13 +73,35 @@ deleteIcon = _ref.deleteIcon,

return base64ToBlob(value);
}).then(function (_ref2) {
var blob = _ref2.blob,
base64 = _ref2.base64;
list[index].preview = base64;
list[index].blob = blob;
setFiles(list);
list[index].isModified = true;
setNotificationError(DEFAULT_NOTIFICATION_ERROR);
}).then( /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
var blob, base64;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
blob = _ref2.blob, base64 = _ref2.base64;
list[index].preview = base64;
list[index].blob = blob;
list[index].isModified = true;
_context.next = 6;
return callbackUploadPhotoHandler(blob, callbackUploadPhoto, list[index].url);
_callbackPhotosUploaded(list);
});
case 6:
list[index].url = _context.sent;
setFiles(list);
setNotificationError(DEFAULT_NOTIFICATION_ERROR);
_callbackPhotosUploaded(list);
case 10:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function (_x) {
return _ref3.apply(this, arguments);
};
}());
};

@@ -92,8 +118,8 @@

options: defaultFormatToBase64Options
}).then(function (_ref3) {
var blob = _ref3.blob,
croppedBase64 = _ref3.croppedBase64,
url = _ref3.url,
_ref3$hasErrors = _ref3.hasErrors,
hasErrors = _ref3$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref3$hasErrors;
}).then(function (_ref4) {
var blob = _ref4.blob,
croppedBase64 = _ref4.croppedBase64,
url = _ref4.url,
_ref4$hasErrors = _ref4.hasErrors,
hasErrors = _ref4$hasErrors === void 0 ? DEFAULT_HAS_ERRORS_STATUS : _ref4$hasErrors;

@@ -133,3 +159,3 @@ if (hasErrors) {

return files.map(function (file, index) {
return React.createElement("li", {
return /*#__PURE__*/React.createElement("li", {
className: thumbClassName,

@@ -140,3 +166,3 @@ key: "" + file.preview + index,

}
}, React.createElement(ThumbCard, {
}, /*#__PURE__*/React.createElement(ThumbCard, {
iconSize: thumbIconSize,

@@ -159,3 +185,3 @@ image: file,

var previewCardClass = cx(PREVIEW_CARD_CLASS_NAME, (_cx2 = {}, _cx2[PREVIEW_CARD_CLASS_NAME + "--ratioDisabled"] = outputImageAspectRatioDisabled, _cx2));
return React.createElement(ReactSortable, {
return /*#__PURE__*/React.createElement(ReactSortable, {
className: previewCardClass,

@@ -175,3 +201,3 @@ handle: ".sui-MoleculePhotoUploader-thumbCard-imageContainer",

delay: dragDelay
}, React.createElement(React.Fragment, null, thumbCards(files), !isPhotoUploaderFully() && React.createElement(SkeletonCard, {
}, /*#__PURE__*/React.createElement(React.Fragment, null, thumbCards(files), !isPhotoUploaderFully() && /*#__PURE__*/React.createElement(SkeletonCard, {
icon: addMorePhotosIcon(),

@@ -178,0 +204,0 @@ text: addPhotoTextSkeleton

@@ -10,9 +10,9 @@ import React from 'react';

text = _ref.text;
return React.createElement("li", {
return /*#__PURE__*/React.createElement("li", {
className: SKELETON_CLASS_NAME
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
className: SKELETON_CLASS_NAME + "-icon"
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: ATOM_ICON_SIZES.medium
}, icon)), React.createElement("div", {
}, icon)), /*#__PURE__*/React.createElement("div", {
className: SKELETON_CLASS_NAME + "-text"

@@ -19,0 +19,0 @@ }, text));

@@ -32,18 +32,18 @@ import React from 'react';

var imageThumbClass = cx(IMAGE_THUMB_CARD_CLASS_NAME, (_cx2 = {}, _cx2[IMAGE_THUMB_CARD_CLASS_NAME + "--ratioDisabled"] = outputImageAspectRatioDisabled, _cx2));
return React.createElement("div", {
return /*#__PURE__*/React.createElement("div", {
className: THUMB_CARD_CLASS_NAME
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
className: counterClass
}, index === 0 ? mainPhotoLabel : index + 1), React.createElement("div", {
}, index === 0 ? mainPhotoLabel : index + 1), /*#__PURE__*/React.createElement("div", {
className: CONTAINER_THUMB_CARD_CLASS_NAME
}, hasErrors ? React.createElement("div", {
}, hasErrors ? /*#__PURE__*/React.createElement("div", {
className: "" + ICON_THUMB_CARD_CLASS_NAME
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: ATOM_ICON_SIZES.extraLarge
}, rejectPhotosIcon)) : React.createElement("img", {
}, rejectPhotosIcon)) : /*#__PURE__*/React.createElement("img", {
src: image.preview,
className: imageThumbClass
})), React.createElement("div", {
})), /*#__PURE__*/React.createElement("div", {
className: ACTION_THUMB_CARD_CLASS_NAME
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
className: BUTTON_THUMB_CARD_CLASS_NAME,

@@ -53,5 +53,5 @@ onClick: function onClick() {

}
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: iconSize
}, deleteIcon)), hasErrors ? React.createElement("div", {
}, deleteIcon)), hasErrors ? /*#__PURE__*/React.createElement("div", {
className: BUTTON_THUMB_CARD_CLASS_NAME,

@@ -61,5 +61,5 @@ onClick: function onClick(e) {

}
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: iconSize
}, retryIcon)) : React.createElement("div", {
}, retryIcon)) : /*#__PURE__*/React.createElement("div", {
className: BUTTON_THUMB_CARD_CLASS_NAME,

@@ -69,3 +69,3 @@ onClick: function onClick(e) {

}
}, React.createElement(AtomIcon, {
}, /*#__PURE__*/React.createElement(AtomIcon, {
size: iconSize

@@ -72,0 +72,0 @@ }, rotateIcon))));

{
"name": "@s-ui/react-molecule-photo-uploader",
"version": "1.13.0",
"version": "1.14.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -71,2 +71,3 @@ # MoleculePhotoUploader

callbackPhotosUploaded={acceptedPhotos => console.log(acceptedPhotos)}
callbackUploadPhoto= {(file,oldUrl) => console.log(file,oldUrl)}
limitPhotosUploadedText={_limitPhotosUploaded}

@@ -73,0 +74,0 @@ limitPhotosUploadedNotification={_limitPhotosUploadedNotification}

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc