From 86578ab1f9e06653b03db06ed99263fba5e5e279 Mon Sep 17 00:00:00 2001 From: David Date: Sun, 13 Nov 2022 20:34:49 -0800 Subject: [PATCH] fix: convert functional components to be forwardRef components vs redefining them as such Tests were failing because the top level component was a wrapper vs the actual component that was exposed. This also makes it so defaultProps and PropTypes are attached to the actual component exported. --- src/Accordion.js | 8 ++++---- src/AccordionBody.js | 6 +++--- src/AccordionHeader.js | 8 ++++---- src/AccordionItem.js | 8 ++++---- src/Alert.js | 6 +++--- src/Badge.js | 8 ++++---- src/Button.js | 8 ++++---- src/CardBody.js | 8 ++++---- src/CardLink.js | 8 ++++---- src/CloseButton.js | 8 ++++---- src/Fade.js | 8 ++++---- src/Form.js | 2 ++ src/Placeholder.js | 8 ++++---- src/Table.js | 6 +++--- src/Toast.js | 8 ++++---- src/ToastBody.js | 8 ++++---- src/UncontrolledAccordion.js | 9 +++++---- 17 files changed, 64 insertions(+), 61 deletions(-) diff --git a/src/Accordion.js b/src/Accordion.js index 3b6f93050..647a29536 100644 --- a/src/Accordion.js +++ b/src/Accordion.js @@ -29,7 +29,7 @@ const defaultProps = { tag: 'div', }; -function Accordion(props) { +const Accordion = React.forwardRef((props, ref) => { const { flush, open, @@ -37,7 +37,7 @@ function Accordion(props) { className, cssModule, tag: Tag, - innerRef, + innerRef = ref, ...attributes } = props; const classes = mapToCssModules( @@ -57,9 +57,9 @@ function Accordion(props) { ); -} +}) Accordion.propTypes = propTypes; Accordion.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default Accordion; diff --git a/src/AccordionBody.js b/src/AccordionBody.js index 51677e3f1..65d1c98ec 100644 --- a/src/AccordionBody.js +++ b/src/AccordionBody.js @@ -27,7 +27,7 @@ const defaultProps = { tag: 'div', }; -function AccordionBody(props) { +const AccordionBody = React.forwardRef((props, ref) => { const { className, cssModule, @@ -57,9 +57,9 @@ function AccordionBody(props) { {children} ); -} +}) AccordionBody.propTypes = propTypes; AccordionBody.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default AccordionBody; diff --git a/src/AccordionHeader.js b/src/AccordionHeader.js index 0556c48f7..1b0cc30ab 100644 --- a/src/AccordionHeader.js +++ b/src/AccordionHeader.js @@ -25,12 +25,12 @@ const defaultProps = { tag: 'h2', }; -function AccordionHeader(props) { +const AccordionHeader = React.forwardRef((props, ref) => { const { className, cssModule, tag: Tag, - innerRef, + innerRef = ref, children, targetId, ...attributes @@ -62,9 +62,9 @@ function AccordionHeader(props) { ); -} +}) AccordionHeader.propTypes = propTypes; AccordionHeader.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default AccordionHeader; diff --git a/src/AccordionItem.js b/src/AccordionItem.js index fa47e5516..3fb148a2e 100644 --- a/src/AccordionItem.js +++ b/src/AccordionItem.js @@ -22,17 +22,17 @@ const defaultProps = { tag: 'div', }; -function AccordionItem(props) { - const { className, cssModule, tag: Tag, innerRef, ...attributes } = props; +const AccordionItem = React.forwardRef((props, ref) => { + const { className, cssModule, tag: Tag, innerRef = ref, ...attributes } = props; const classes = mapToCssModules( classNames(className, 'accordion-item'), cssModule, ); return ; -} +}) AccordionItem.propTypes = propTypes; AccordionItem.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default AccordionItem; diff --git a/src/Alert.js b/src/Alert.js index 8514f8fd6..db6d8873f 100644 --- a/src/Alert.js +++ b/src/Alert.js @@ -46,7 +46,7 @@ const defaultProps = { }, }; -function Alert(props) { +const Alert = React.forwardRef((props, ref) => { const { className, closeClassName, @@ -103,9 +103,9 @@ function Alert(props) { {children} ); -} +}); Alert.propTypes = propTypes; Alert.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default Alert; diff --git a/src/Badge.js b/src/Badge.js index 9af580b17..633db58a8 100644 --- a/src/Badge.js +++ b/src/Badge.js @@ -29,12 +29,12 @@ const defaultProps = { tag: 'span', }; -function Badge(props) { +const Badge = React.forwardRef((props, ref) => { let { className, cssModule, color, - innerRef, + innerRef = ref, pill, tag: Tag, ...attributes @@ -55,9 +55,9 @@ function Badge(props) { } return ; -} +}); Badge.propTypes = propTypes; Badge.defaultProps = defaultProps; -export default React.forwardRef((props, ref) => ); +export default Badge; diff --git a/src/Button.js b/src/Button.js index 53a107421..adef432ca 100644 --- a/src/Button.js +++ b/src/Button.js @@ -42,7 +42,7 @@ const defaultProps = { tag: 'button', }; -function Button(props) { +const Button = React.forwardRef((props, ref) => { const onClick = useCallback( (e) => { if (props.disabled) { @@ -68,7 +68,7 @@ function Button(props) { outline, size, tag: Tag, - innerRef, + innerRef = ref, ...attributes } = props; @@ -104,9 +104,9 @@ function Button(props) { aria-label={ariaLabel} /> ); -} +}); Button.propTypes = propTypes; Button.defaultProps = defaultProps; -export default React.forwardRef((props, ref) =>