UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

89 lines (81 loc) 3.2 kB
/** * MSKCC 2021, 2024 */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var iconsReact = require('@carbon/icons-react'); var PropTypes = require('prop-types'); var React = require('react'); var Loading = require('../Loading/Loading.js'); var usePrefix = require('../../internal/usePrefix.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var _Close; function Filename(_ref) { let { iconDescription, status, invalid, name, ['aria-describedby']: ariaDescribedBy, ...rest } = _ref; const prefix = usePrefix.usePrefix(); switch (status) { case 'uploading': return /*#__PURE__*/React__default["default"].createElement(Loading["default"], { description: iconDescription, small: true, withOverlay: false }); case 'edit': return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, invalid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, { className: `${prefix}--file-invalid` }), /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({ "aria-label": `${iconDescription} - ${name}`, className: `${prefix}--file-close`, type: "button" }, rest, { tabIndex: rest.tabIndex !== undefined ? parseInt(rest.tabIndex, 10) : undefined, "aria-describedby": invalid ? ariaDescribedBy : undefined }), _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null)))); case 'complete': return /*#__PURE__*/React__default["default"].createElement(iconsReact.CheckmarkFilled, _rollupPluginBabelHelpers["extends"]({ "aria-label": iconDescription, className: `${prefix}--file-complete` }, rest, { tabIndex: null }), iconDescription && /*#__PURE__*/React__default["default"].createElement("title", null, iconDescription)); default: return null; } } Filename.propTypes = { /** * Specify an id that describes the error to be read by screen readers when the filename is invalid */ ['aria-describedby']: PropTypes__default["default"].string, /** * Provide a description of the SVG icon to denote file upload status */ iconDescription: PropTypes__default["default"].string, /** * Specify if the file is invalid */ invalid: PropTypes__default["default"].bool, /** * Name of the uploaded file */ name: PropTypes__default["default"].string, /** * Status of the file upload */ status: PropTypes__default["default"].oneOf(['edit', 'complete', 'uploading']), /** * Provide a custom tabIndex value for the `<Filename>` */ tabIndex: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]) }; exports["default"] = Filename;