tools/preview/prebuilt-components/Text/TextAdapter.js (47 lines of code) (raw):
import React from 'react';
import Text from 'rhythm-form-react/lib/controls/Text';
import sharedPropTypes from '../sharedPropTypes';
export default class TextAdapter extends React.Component {
static propTypes = {
...sharedPropTypes,
}
render() {
const {
config,
computed,
htmlId,
path,
handleChangeFast,
handleBlurFast,
handleKeyPressFast,
value,
getDisplayError,
renderTextNode,
} = this.props;
const {
data = {},
} = config;
const {
inputAttrs = {},
} = data;
return (
<Text
id={htmlId}
name={path}
value={value}
onChange={e => {
handleChangeFast(e.target.value);
}}
onBlur={handleBlurFast}
onKeyPress={handleKeyPressFast}
label={renderTextNode(data.label, 'span')}
labelProps={{
helpText: renderTextNode(data.labelHelpText, 'span'),
}}
helpText={renderTextNode(data.helpText)}
tooltip={renderTextNode(data.tooltip)}
required={computed.required}
disabled={computed.disabled}
error={getDisplayError()}
width={data.width}
{...inputAttrs}
/>
);
}
}