Skip to content

Commit 4ab05dc

Browse files
montezumekodiakhq[bot]
authored andcommitted
fix(buttons): make onClick not required if as is passed (#1189)
* fix(buttons): make onClick not required if as is passed * chore: pr comments
1 parent b86f5b6 commit 4ab05dc

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/components/buttons/flat-button/flat-button.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from 'react';
22
import PropTypes from 'prop-types';
33
import { css } from '@emotion/core';
44
import omit from 'lodash/omit';
5+
import requiredIf from 'react-required-if';
56
import vars from '../../../../materials/custom-properties';
67
import filterInvalidAttributes from '../../../utils/filter-invalid-attributes';
78
import Text from '../../typography/text';
@@ -116,7 +117,7 @@ FlatButton.propTypes = {
116117
tone: PropTypes.oneOf(['primary', 'secondary', 'inverted']),
117118
type: PropTypes.oneOf(['submit', 'reset', 'button']),
118119
label: PropTypes.string.isRequired,
119-
onClick: PropTypes.func.isRequired,
120+
onClick: requiredIf(PropTypes.func, props => !props.as),
120121
icon: PropTypes.element,
121122
iconPosition: PropTypes.oneOf(['left', 'right']),
122123
isDisabled: PropTypes.bool,

src/components/buttons/primary-button/primary-button.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
22
import React from 'react';
33
import isNil from 'lodash/isNil';
44
import omit from 'lodash/omit';
5+
import requiredIf from 'react-required-if';
56
import { css } from '@emotion/core';
67
import vars from '../../../../materials/custom-properties';
78
import filterInvalidAttributes from '../../../utils/filter-invalid-attributes';
@@ -73,7 +74,7 @@ PrimaryButton.propTypes = {
7374
return PropTypes.bool(props, propName, componentName, ...rest);
7475
},
7576
isDisabled: PropTypes.bool,
76-
onClick: PropTypes.func.isRequired,
77+
onClick: requiredIf(PropTypes.func, props => !props.as),
7778
size: PropTypes.oneOf(['big', 'small']),
7879
tone: PropTypes.oneOf(['urgent', 'primary']),
7980
};

src/components/buttons/secondary-icon-button/secondary-icon-button.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import omit from 'lodash/omit';
4+
import requiredIf from 'react-required-if';
45
import filterInvalidAttributes from '../../../utils/filter-invalid-attributes';
56
import AccessibleButton from '../accessible-button';
67
import { getBaseStyles } from './secondary-icon-button.styles';
@@ -38,7 +39,7 @@ SecondaryIconButton.propTypes = {
3839
icon: PropTypes.element.isRequired,
3940
color: PropTypes.oneOf(['solid', 'primary']),
4041
label: PropTypes.string.isRequired,
41-
onClick: PropTypes.func.isRequired,
42+
onClick: requiredIf(PropTypes.func, props => !props.as),
4243
isDisabled: PropTypes.bool,
4344
};
4445

0 commit comments

Comments
 (0)