UNPKG

922 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
15const defaultProps = {
16 tag: 'div',
17 valid: undefined
18};
19
20const FormFeedback = (props) => {
21 const {
22 className,
23 cssModule,
24 valid,
25 tooltip,
26 tag: Tag,
27 ...attributes
28 } = props;
29
30 const validMode = tooltip ? 'tooltip' : 'feedback';
31
32 const classes = mapToCssModules(
33 classNames(
34 className,
35 valid ? `valid-${validMode}` : `invalid-${validMode}`
36 ),
37 cssModule
38 );
39
40 return <Tag {...attributes} className={classes} />;
41};
42
43FormFeedback.propTypes = propTypes;
44FormFeedback.defaultProps = defaultProps;
45
46export default FormFeedback;
47
\No newline at end of file