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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | 1x 3x 3x 3x 3x 3x 1x 1x | import {useRef} from 'react' import PropTypes from 'prop-types' import MoleculeField from '@s-ui/react-molecule-field' import MoleculeSelect from '@s-ui/react-molecule-select' import {getState, hasErrors} from './config.js' const MoleculeSelectField = ({ children, errorText, helpText, id, inline, label, nodeLabel, successText, alertText, onChange: handleChange, className, ...props }) => { const refSelect = useRef() const handleClick = () => { const {current: domSelect} = refSelect if (domSelect) domSelect.focus() } const errorState = hasErrors({successText, errorText}) const selectState = getState({successText, errorState, alertText}) return ( <MoleculeField errorText={errorText} helpText={helpText} inline={inline} label={label} nodeLabel={nodeLabel} name={id} onChange={handleChange} onClickLabel={handleClick} successText={successText} alertText={alertText} > <MoleculeSelect className={className} errorState={errorState} refMoleculeSelect={refSelect} state={selectState} id={id} {...props} > {children} </MoleculeSelect> </MoleculeField> ) } MoleculeSelectField.displayName = 'MoleculeSelectField' MoleculeSelectField.propTypes = { /** children */ children: PropTypes.any, /** className */ className: PropTypes.string, /** Error message to display when error state */ errorText: PropTypes.string, /** Help Text to display */ helpText: PropTypes.string, /** used as label for attribute and Select element id */ id: PropTypes.string, /** Boolean to decide if elements should be set inline */ inline: PropTypes.bool, /** Text to be displayed as label */ label: PropTypes.string.isRequired, /** React node to be displayed as label if there is not a label */ nodeLabel: PropTypes.element, /* onChange callback */ onChange: PropTypes.func, /** Success message to display when success state */ successText: PropTypes.string, /** Alert message to display when alert state */ alertText: PropTypes.string } export default MoleculeSelectField |