UNPKG

@fluentui/react-northstar

Version:
105 lines (103 loc) 3.66 kB
import * as React from 'react'; import { useFluentContext, useTelemetry, useStyles, useAccessibility, getElementType, useUnhandledProps } from '@fluentui/react-bindings'; import { commonPropTypes, createShorthandFactory, createShorthand } from '../../utils'; import * as customPropTypes from '@fluentui/react-proptypes'; import * as PropTypes from 'prop-types'; import { statusBehavior as avatarStatusBehavior } from '@fluentui/accessibility'; import { AvatarStatusIcon } from './AvatarStatusIcon'; import { AvatarStatusImage } from './AvatarStatusImage'; import { statusClassName } from '../Status/Status'; // update in upcoming breaking change and enable a unit test export var avatarStatusClassName = statusClassName; /** * A AvatarStatus provides a status for the Avatar. */ export var AvatarStatus = /*#__PURE__*/function () { var AvatarStatus = /*#__PURE__*/React.forwardRef(function (props, ref) { var context = useFluentContext(); var _useTelemetry = useTelemetry(AvatarStatus.displayName, context.telemetry), setStart = _useTelemetry.setStart, setEnd = _useTelemetry.setEnd; setStart(); var className = props.className, color = props.color, design = props.design, icon = props.icon, image = props.image, size = props.size, state = props.state, styles = props.styles, variables = props.variables; var _useStyles = useStyles(AvatarStatus.displayName, { className: avatarStatusClassName, mapPropsToStyles: function mapPropsToStyles() { return { color: color, size: size, state: state }; }, mapPropsToInlineStyles: function mapPropsToInlineStyles() { return { className: className, design: design, styles: styles, variables: variables }; }, rtl: context.rtl }), classes = _useStyles.classes; var getA11Props = useAccessibility(props.accessibility, { debugName: AvatarStatus.displayName, rtl: context.rtl }); var ElementType = getElementType(props); var unhandledProps = useUnhandledProps(AvatarStatus.handledProps, props); var iconElement = createShorthand(AvatarStatusIcon, icon, { defaultProps: function defaultProps() { return { size: size, state: state }; } }); var imageElement = createShorthand(AvatarStatusImage, image, { defaultProps: function defaultProps() { return getA11Props('image', { size: size }); } }); var element = /*#__PURE__*/React.createElement(ElementType, getA11Props('root', Object.assign({ className: classes.root, ref: ref }, unhandledProps)), imageElement || iconElement); setEnd(); return element; }); AvatarStatus.displayName = 'AvatarStatus'; AvatarStatus.propTypes = Object.assign({}, commonPropTypes.createCommon({ children: false, content: false }), { color: PropTypes.string, icon: customPropTypes.shorthandAllowingChildren, image: customPropTypes.itemShorthandWithoutJSX, size: customPropTypes.size, state: PropTypes.oneOf(['success', 'info', 'warning', 'error', 'unknown']) }); AvatarStatus.handledProps = Object.keys(AvatarStatus.propTypes); AvatarStatus.defaultProps = { accessibility: avatarStatusBehavior, as: 'span', size: 'medium', state: 'unknown' }; AvatarStatus.create = createShorthandFactory({ Component: AvatarStatus, mappedProp: 'state' }); return AvatarStatus; }(); //# sourceMappingURL=AvatarStatus.js.map