UNPKG

@wix/design-system

Version:

@wix/design-system

27 lines 1.54 kB
import React from 'react'; import PropTypes from 'prop-types'; import { st, classes } from './StatusIndicator.st.css.js'; import Tooltip from '../Tooltip'; import { FormFieldSuccessFilled, FormFieldWarningFilled, FormFieldErrorFilled, } from '@wix/wix-ui-icons-common/system'; import Loader from '../Loader'; import { dataHooks, STATUS, TOOLTIP_PLACEMENT, } from './StatusIndicator.constants'; const statusToIconMap = { success: React.createElement(FormFieldSuccessFilled, null), warning: React.createElement(FormFieldWarningFilled, null), loading: React.createElement(Loader, { size: "tiny" }), error: React.createElement(FormFieldErrorFilled, null), }; const StatusIndicator = ({ dataHook, status = STATUS.ERROR, message, tooltipPlacement = TOOLTIP_PLACEMENT.TOP, className, tooltipProps, }) => { return (React.createElement("div", { className: st(classes.root, { status }, className), "data-hook": dataHook, "data-status": status }, message ? (React.createElement(Tooltip, { dataHook: dataHooks.tooltip, appendTo: "window", placement: tooltipPlacement, exitDelay: 100, content: message, maxWidth: 250, ...tooltipProps }, statusToIconMap[status])) : (statusToIconMap[status]))); }; StatusIndicator.displayName = 'StatusIndicator'; StatusIndicator.propTypes = { dataHook: PropTypes.any, className: PropTypes.any, status: PropTypes.any, message: PropTypes.any, tooltipPlacement: PropTypes.any, tooltipProps: PropTypes.any, }; export default StatusIndicator; //# sourceMappingURL=StatusIndicator.js.map