UNPKG

839 BJavaScriptView Raw
1import React from 'react';
2import PropTypes from 'prop-types';
3import classNames from 'classnames';
4import { mapToCssModules, tagPropType } from './utils';
5
6const propTypes = {
7 children: PropTypes.node,
8 tag: tagPropType,
9 className: PropTypes.string,
10 cssModule: PropTypes.object,
11 valid: PropTypes.bool,
12 tooltip: PropTypes.bool,
13};
14
15function FormFeedback(props) {
16 const {
17 className,
18 cssModule,
19 valid = undefined,
20 tooltip,
21 tag: Tag = 'div',
22 ...attributes
23 } = props;
24
25 const validMode = tooltip ? 'tooltip' : 'feedback';
26
27 const classes = mapToCssModules(
28 classNames(
29 className,
30 valid ? `valid-${validMode}` : `invalid-${validMode}`,
31 ),
32 cssModule,
33 );
34
35 return <Tag {...attributes} className={classes} />;
36}
37
38FormFeedback.propTypes = propTypes;
39
40export default FormFeedback;
41
\No newline at end of file