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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 1x 9x 2x 2x 2x 9x 9x 1x 1x | import {forwardRef} from 'react'
import cx from 'classnames'
import PropTypes from 'prop-types'
import {BASE_CLASS, CLASS_HIDDEN} from './settings.js'
const AtomRadioButton = forwardRef(({id, disabled, checked = false, onChange, isHidden, value, ...props}, ref) => {
const handleChange = ev => {
Eif (!disabled) {
const {name, value, checked} = ev.target
typeof onChange === 'function' && onChange(ev, {name, value, checked})
}
}
const className = cx(BASE_CLASS, {
[CLASS_HIDDEN]: isHidden
})
return (
<input
className={className}
value={value}
type="radio"
id={id}
disabled={disabled}
checked={checked}
onChange={handleChange}
ref={ref}
{...props}
/>
)
})
AtomRadioButton.displayName = 'AtomRadioButton'
AtomRadioButton.propTypes = {
/* The DOM id global attribute. */
id: PropTypes.string,
/* This Boolean attribute prevents the user from interacting with the input */
disabled: PropTypes.bool,
/* Mark the input as selected */
checked: PropTypes.bool,
/* onChange callback */
onChange: PropTypes.func,
/* Value assigned to the radio button */
value: PropTypes.string,
/* If is hidden */
isHidden: PropTypes.bool
}
export default AtomRadioButton
|