UNPKG

@spaced-out/ui-design-system

Version:
108 lines (105 loc) 4.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileBlock = void 0; var React = _interopRequireWildcard(require("react")); var _classify = _interopRequireDefault(require("../../../utils/classify")); var _Icon = require("../../Icon"); var _LinearLoader = require("../../LinearLoader"); var _Truncate = require("../../Truncate"); var _FileUploadModule = _interopRequireDefault(require("../FileUpload.module.css")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const FileBlock = exports.FileBlock = /*#__PURE__*/React.forwardRef((_ref, ref) => { let { classNames, fileObject, onFileRefreshClick, handleFileClear } = _ref; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { className: (0, _classify.default)(_FileUploadModule.default.file, classNames?.wrapper), ref: ref }, /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.fileInfo }, /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.fileNameBlock }, /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.icon }, /*#__PURE__*/React.createElement(FileStatusIcon, { fileObject: fileObject })), /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.fileName }, /*#__PURE__*/React.createElement(_Truncate.Truncate, null, fileObject.file.name))), fileObject.success && !!fileObject.successMessage && !fileObject.progress && /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.fileSuccess }, /*#__PURE__*/React.createElement(_Truncate.Truncate, null, fileObject.successMessage)), fileObject.reject && !!fileObject.rejectReason && !fileObject.progress && /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.fileError }, /*#__PURE__*/React.createElement(_Truncate.Truncate, null, fileObject.rejectReason)), !!fileObject.progress && /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.progress }, /*#__PURE__*/React.createElement(_LinearLoader.LinearLoader, { size: "small", value: fileObject.progress === 'indeterminate' ? 0 : fileObject.progress, indeterminate: fileObject.progress === 'indeterminate' }))), /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.rightSection }, fileObject.showReUpload && /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.rightBlock }, /*#__PURE__*/React.createElement(_Icon.ClickableIcon, { name: "refresh", size: "small", onClick: () => onFileRefreshClick?.(fileObject) })), /*#__PURE__*/React.createElement("div", { className: _FileUploadModule.default.rightBlock }, /*#__PURE__*/React.createElement(_Icon.CloseIcon, { size: "small", onClick: () => handleFileClear?.(fileObject.id) }))))); }); // This function returns the status of a file const getFileStatus = fileObject => { if (fileObject.progress) { return 'progress'; } if (fileObject.success) { return 'success'; } if (fileObject.reject) { return 'error'; } return 'default'; }; // This component renders the status icon for a file const FileStatusIcon = _ref2 => { let { fileObject } = _ref2; const status = getFileStatus(fileObject); switch (status) { case 'progress': return /*#__PURE__*/React.createElement(_Icon.Icon, { size: "small", name: "loader", color: "tertiary" }); case 'success': return /*#__PURE__*/React.createElement(_Icon.Icon, { size: "small", name: "check", color: "success" }); case 'error': return /*#__PURE__*/React.createElement(_Icon.Icon, { size: "small", name: "circle-exclamation", color: "danger", type: "solid" }); default: return /*#__PURE__*/React.createElement(_Icon.Icon, { size: "small", name: "check", color: "success" }); } };