@@ -96,17 +96,18 @@ CloseButton.defaultProps = {
9696 * @param {string } [className] Additional class names.
9797 * @param {boolean } [hasCloseButton] Whether the modal has a close button.
9898 * @param {string } [closeButtonScreenReaderText] The screen reader text of the close button. Used when hasCloseButton is true.
99+ * @param {Object } [closeButtonRef] Ref forwarded to the close button element.
99100 * @param {Object } [props] Additional props.
100101 * @returns {JSX.Element } The panel.
101102 */
102- const Panel = forwardRef ( ( { children, className = "" , hasCloseButton = true , closeButtonScreenReaderText = "Close" , ...props } , ref ) => {
103+ const Panel = forwardRef ( ( { children, className = "" , hasCloseButton = true , closeButtonScreenReaderText = "Close" , closeButtonRef = null , ...props } , ref ) => {
103104 return (
104105 < Dialog . Panel
105106 ref = { ref }
106107 className = { classNames ( "yst-modal__panel" , className ) }
107108 { ...props }
108109 >
109- { hasCloseButton && < CloseButton screenReaderText = { closeButtonScreenReaderText } /> }
110+ { hasCloseButton && < CloseButton ref = { closeButtonRef } screenReaderText = { closeButtonScreenReaderText } /> }
110111 { children }
111112 </ Dialog . Panel >
112113 ) ;
@@ -118,11 +119,13 @@ Panel.propTypes = {
118119 className : PropTypes . string ,
119120 hasCloseButton : PropTypes . bool ,
120121 closeButtonScreenReaderText : PropTypes . string ,
122+ closeButtonRef : PropTypes . object ,
121123} ;
122124Panel . defaultProps = {
123125 className : "" ,
124126 hasCloseButton : true ,
125127 closeButtonScreenReaderText : "Close" ,
128+ closeButtonRef : null ,
126129} ;
127130
128131export const classNameMap = {
0 commit comments