All files / molecule/modal/src Modal.OpenTrigger.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                  1x     1x 8x             1x   1x                  
import cx from 'classnames'
import PropTypes from 'prop-types'
 
import {Trigger as RadixOpenTrigger} from '@radix-ui/react-dialog'
 
import PrimitiveInjector from '@s-ui/react-primitive-injector'
 
import {BASE_CLASS} from './config.js'
 
const BASE_CLASS_OPEN_TRIGGER = `${BASE_CLASS}-OpenTrigger`
 
/** The trigger slot that opens the dialog. **/
const OpenTrigger = ({as: As = PrimitiveInjector, className, ...props}) => {
  return (
    <RadixOpenTrigger asChild={true}>
      <As data-sui-component={OpenTrigger.displayName} className={cx(BASE_CLASS_OPEN_TRIGGER, className)} {...props} />
    </RadixOpenTrigger>
  )
}
 
OpenTrigger.displayName = 'MoleculeModal.OpenTrigger'
 
OpenTrigger.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 OpenTrigger