99import React , { FunctionComponent } from 'react' ;
1010import classNames from 'classnames' ;
1111
12- import { useEuiTheme } from '../../services' ;
12+ import { useEuiMemoizedStyles } from '../../services' ;
1313import { useEuiI18n } from '../i18n' ;
1414import { useInnerText } from '../inner_text' ;
1515import { DistributiveOmit } from '../common' ;
@@ -78,8 +78,7 @@ export const EuiFilterButton: FunctionComponent<EuiFilterButtonProps> = ({
7878 const numActiveFiltersDefined =
7979 numActiveFilters != null && numActiveFilters > 0 ;
8080
81- const euiTheme = useEuiTheme ( ) ;
82- const styles = euiFilterButtonStyles ( euiTheme ) ;
81+ const styles = useEuiMemoizedStyles ( euiFilterButtonStyles ) ;
8382 const cssStyles = [
8483 styles . euiFilterButton ,
8584 withNext && styles . withNext ,
@@ -91,7 +90,7 @@ export const EuiFilterButton: FunctionComponent<EuiFilterButtonProps> = ({
9190 content : contentStyles ,
9291 text : textStyles ,
9392 notification : notificationStyles ,
94- } = euiFilterButtonChildStyles ( euiTheme ) ;
93+ } = useEuiMemoizedStyles ( euiFilterButtonChildStyles ) ;
9594
9695 const classes = classNames (
9796 'euiFilterButton' ,
@@ -118,21 +117,10 @@ export const EuiFilterButton: FunctionComponent<EuiFilterButtonProps> = ({
118117 '{count} available filters' ,
119118 { count : badgeCount }
120119 ) ;
121-
122- const badgeContent = showBadge && (
123- < EuiNotificationBadge
124- className = "euiFilterButton__notification"
125- css = { [
126- notificationStyles . euiFilterButton__notification ,
127- isDisabled && notificationStyles . disabled ,
128- ] }
129- aria-label = { hasActiveFilters ? activeBadgeLabel : availableBadgeLabel }
130- color = { isDisabled || ! hasActiveFilters ? 'subdued' : badgeColor }
131- role = "marquee" // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/marquee_role
132- >
133- { badgeCount }
134- </ EuiNotificationBadge >
135- ) ;
120+ const badgeStyles = [
121+ notificationStyles . euiFilterButton__notification ,
122+ isDisabled && notificationStyles . disabled ,
123+ ] ;
136124
137125 /**
138126 * Text
@@ -152,19 +140,6 @@ export const EuiFilterButton: FunctionComponent<EuiFilterButtonProps> = ({
152140 const dataText =
153141 children && typeof children === 'string' ? children : innerText ;
154142
155- const textContent = (
156- < span
157- ref = { ref }
158- data-text = { dataText }
159- title = { dataText }
160- { ...textProps }
161- className = { buttonTextClassNames }
162- css = { textCssStyles }
163- >
164- { children }
165- </ span >
166- ) ;
167-
168143 return (
169144 < EuiButtonEmpty
170145 className = { classes }
@@ -185,8 +160,28 @@ export const EuiFilterButton: FunctionComponent<EuiFilterButtonProps> = ({
185160 } }
186161 { ...rest }
187162 >
188- { textContent }
189- { badgeContent }
163+ < span
164+ ref = { ref }
165+ data-text = { dataText }
166+ title = { dataText }
167+ { ...textProps }
168+ className = { buttonTextClassNames }
169+ css = { textCssStyles }
170+ >
171+ { children }
172+ </ span >
173+
174+ { showBadge && (
175+ < EuiNotificationBadge
176+ className = "euiFilterButton__notification"
177+ css = { badgeStyles }
178+ aria-label = { hasActiveFilters ? activeBadgeLabel : availableBadgeLabel }
179+ color = { isDisabled || ! hasActiveFilters ? 'subdued' : badgeColor }
180+ role = "marquee" // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/marquee_role
181+ >
182+ { badgeCount }
183+ </ EuiNotificationBadge >
184+ ) }
190185 </ EuiButtonEmpty >
191186 ) ;
192187} ;
0 commit comments