@@ -14,6 +14,7 @@ import LocaleReceiver, {
1414 useLocaleReceiver ,
1515} from '../LocaleProvider/LocaleReceiver' ;
1616import enUS from './Locale/en_US' ;
17+ import { useMergedRefs } from '../../hooks/useMergedRefs' ;
1718
1819import styles from './infoBar.module.scss' ;
1920import themedComponentStyles from './infoBar.theme.module.scss' ;
@@ -28,13 +29,15 @@ export const InfoBar: FC<InfoBarsProps> = React.forwardRef(
2829 closable,
2930 closeButtonAriaLabelText : defaultCloseButtonAriaLabelText ,
3031 closeButtonProps,
32+ closeButtonRef : externalCloseButtonRef ,
3133 closeIcon = IconName . mdiClose ,
3234 configContextProps = {
3335 noGradientContext : false ,
3436 noThemeContext : false ,
3537 } ,
3638 content,
3739 contentClassNames,
40+ contentId,
3841 contentWrapperClassNames,
3942 gradient = false ,
4043 icon,
@@ -50,7 +53,11 @@ export const InfoBar: FC<InfoBarsProps> = React.forwardRef(
5053 moveFocusToSnackbar = false ,
5154 ...rest
5255 } = props ;
53- const closeButtonRef = useRef < HTMLButtonElement > ( null ) ;
56+ const internalCloseButtonRef = useRef < HTMLButtonElement > ( null ) ;
57+ const closeButtonRef = useMergedRefs (
58+ internalCloseButtonRef ,
59+ externalCloseButtonRef
60+ ) ;
5461
5562 const contextualGradient : Gradient = useContext ( GradientContext ) ;
5663 const mergedGradient : boolean = configContextProps . noGradientContext
@@ -85,14 +92,6 @@ export const InfoBar: FC<InfoBarsProps> = React.forwardRef(
8592 ) ;
8693 } , [ mergedLocale ] ) ;
8794
88- useEffect ( ( ) => {
89- setTimeout ( ( ) => {
90- if ( ref && 'current' in ref && moveFocusToSnackbar && closable ) {
91- ref . current . focus ( ) ;
92- }
93- } , 0 ) ;
94- } , [ ref ] ) ;
95-
9695 const infoBarClassNames : string = mergeClasses ( [
9796 styles . infoBar ,
9897 { [ styles . bordered ] : ! ! bordered } ,
@@ -142,6 +141,7 @@ export const InfoBar: FC<InfoBarsProps> = React.forwardRef(
142141 ref = { ref }
143142 style = { style }
144143 role = { role }
144+ aria-describedby = { contentId }
145145 >
146146 < Icon
147147 path = { getIconName ( ) }
@@ -154,7 +154,9 @@ export const InfoBar: FC<InfoBarsProps> = React.forwardRef(
154154 contentWrapperClassNames ,
155155 ] ) }
156156 >
157- < div className = { messageClasses } > { content } </ div >
157+ < div className = { messageClasses } id = { contentId } >
158+ { content }
159+ </ div >
158160 { actionButtonProps && (
159161 < Button
160162 buttonWidth = { ButtonWidth . fitContent }
0 commit comments