All files / molecule/modal/src Modal.Description.js

100% Statements 5/5
100% Branches 1/1
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                  1x                 1x 26x                       1x   1x                  
import {forwardRef} from 'react'
 
import cx from 'classnames'
import PropTypes from 'prop-types'
 
import {Description as RadixDescription} from '@radix-ui/react-dialog'
 
import {BASE_CLASS} from './config.js'
 
const BASE_CLASS_DESCRIPTION = `${BASE_CLASS}-Description`
 
/**
 * An accessible title to be announced when the dialog is opened.
 *
 * If you want to hide the description, wrap it inside our Visually Hidden utility like this <VisuallyHidden asChild>.
 * If you want to remove the description entirely, remove this part and pass aria-describedby={undefined}
 * to Dialog.Content.
 **/
const Description = forwardRef(({as: As = 'p', className, ...props}, forwardedRef) => {
  return (
    <RadixDescription asChild={true}>
      <As
        data-sui-component={Description.displayName}
        className={cx(BASE_CLASS_DESCRIPTION, className)}
        ref={forwardedRef}
        {...props}
      />
    </RadixDescription>
  )
})
 
Description.displayName = 'MoleculeModal.Description'
 
Description.propTypes = {
  /* Render the passed value as the correspondent HTML tag or the component if a function is passed */
  as: PropTypes.elementType,
 
  /** Additional classes */
  className: PropTypes.string
}
 
export default Description