@braineet/ui
Version:
Braineet design system
121 lines (120 loc) • 5.86 kB
JavaScript
;
exports.__esModule = true;
exports.DefaultUploadItem = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactSpring = require("react-spring");
var _button = _interopRequireDefault(require("../../button"));
var _file = require("../../file");
var _icon = _interopRequireDefault(require("../../icon"));
var _pane = _interopRequireDefault(require("../../pane"));
var _useUploadState = require("../useUploadState");
var _styles = require("./styles");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /* eslint-disable react/no-array-index-key */
var DefaultUploadItem = exports.DefaultUploadItem = /*#__PURE__*/(0, _react.memo)(function (_ref) {
var item = _ref.item,
children = _ref.children,
disabled = _ref.disabled,
readonly = _ref.readonly,
listType = _ref.listType,
animationStatus = _ref.animationStatus,
uploadItems = _ref.uploadItems,
onPreview = _ref.onPreview,
cancelUpload = _ref.cancelUpload,
removeItem = _ref.removeItem;
var canPreview = _react.default.useMemo(function () {
return (0, _useUploadState.canPreviewFile)(item);
}, [item == null ? void 0 : item.type, item == null ? void 0 : item.status]);
var handleReupload = function handleReupload(e) {
e.preventDefault();
e.stopPropagation();
uploadItems([item]);
};
var handlePreview = function handlePreview(e) {
if (e.defaultPrevented) return;
e.preventDefault();
onPreview(_extends({}, item, {
fileName: item == null ? void 0 : item.name
}));
};
var handleCancel = function handleCancel(e) {
e.stopPropagation();
e.preventDefault();
if ((item == null ? void 0 : item.status) === _useUploadState.UPLOAD_ITEM_STATUS.UPLOADING && cancelUpload) {
cancelUpload();
}
removeItem(item.uid);
};
var transitions = (0, _reactSpring.useTransition)((item == null ? void 0 : item.status) === _useUploadState.UPLOAD_ITEM_STATUS.SUCCESS, null, {
from: {
opacity: 0,
transform: 'translate3d(0, -5px, 0)'
},
enter: {
opacity: 1,
transform: 'translate3d(0, 0, 0)'
},
leave: {
opacity: 0,
transform: 'translate3d(0, -5px, 0)'
},
delay: 300
});
var itemIcon = _react.default.useMemo(function () {
if (listType === _useUploadState.LIST_TYPE.TEXT) return null;
return (0, _useUploadState.getFileIcon)(item);
}, [item, listType]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_file.File, {
id: "" + ((item == null ? void 0 : item.uid) || (item == null ? void 0 : item.name)),
file: _extends({}, item, {
icon: itemIcon
}),
status: item == null ? void 0 : item.status,
onClick: canPreview ? handlePreview : null,
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_pane.default, {
display: "flex",
children: [transitions.map(function (_ref2) {
var tItem = _ref2.item,
key = _ref2.key,
styles = _extends({}, (_objectDestructuringEmpty(_ref2.props), _ref2.props));
return tItem && /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.FeedbackIconWrapper, {
style: styles,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.default, {
name: "add_validated",
color: "success"
})
}, key);
}), (item == null ? void 0 : item.type) === 'link' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
disabled: disabled,
styleType: "ghost",
color: "black",
icon: "share",
as: "a",
target: "_blank",
href: item == null ? void 0 : item.url
}), children, !disabled && !readonly && (item == null ? void 0 : item.status) === _useUploadState.UPLOAD_ITEM_STATUS.ERROR && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
icon: "reset",
styleType: "ghost",
color: "error",
onClick: handleReupload,
disabled: animationStatus === 'leave'
}), !disabled && !readonly && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
icon: "clear",
styleType: "ghost",
color: (item == null ? void 0 : item.status) === _useUploadState.UPLOAD_ITEM_STATUS.ERROR ? 'error' : 'black',
onClick: handleCancel,
disabled: animationStatus === 'leave'
}), (item == null ? void 0 : item.progress) > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.UploadItemProgressBar, {
progress: item == null ? void 0 : item.progress
}) : null]
})
});
});
DefaultUploadItem.displayName = 'DefaultUploadItem';
DefaultUploadItem.defaultProps = {
animationStatus: null
};