UNPKG

@braineet/ui

Version:

Braineet design system

121 lines (120 loc) 5.86 kB
"use strict"; 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 };