All files / molecule/modal/src Modal.CloseTrigger.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                  1x     1x 5x             1x   1x                        
import cx from 'classnames'
import PropTypes from 'prop-types'
 
import {Close as RadixCloseTrigger} from '@radix-ui/react-dialog'
 
import PrimitiveInjector from '@s-ui/react-primitive-injector'
 
import {BASE_CLASS} from './config.js'
 
const BASE_CLASS_CLOSE_TRIGGER = `${BASE_CLASS}-CloseTrigger`
 
/** The trigger slot that closes the dialog. **/
const CloseTrigger = ({as: As = PrimitiveInjector, className, ariaLabel, ...props}) => {
  return (
    <RadixCloseTrigger asChild={true}>
      <As className={cx(BASE_CLASS_CLOSE_TRIGGER, className)} aria-label={ariaLabel} {...props} />
    </RadixCloseTrigger>
  )
}
 
CloseTrigger.displayName = 'MoleculeModal.CloseTrigger'
 
CloseTrigger.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,
 
  /** Aria label for the close trigger */
  ariaLabel: PropTypes.string
}
 
export default CloseTrigger