diff --git a/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap b/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap index 49e6de6c2543..fb5d70d5db05 100644 --- a/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap +++ b/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap @@ -110,7 +110,7 @@ exports[`EuiFilterButton props numActiveFilters and hasActiveFilters renders 1`] /> 5 @@ -132,7 +132,7 @@ exports[`EuiFilterButton props numFilters renders 1`] = ` /> 5 @@ -203,7 +203,7 @@ exports[`EuiFilterButton renders zero properly 1`] = ` /> 0 diff --git a/src/components/filter_group/filter_button.tsx b/src/components/filter_group/filter_button.tsx index 247e44e615b2..db3e8b2f8471 100644 --- a/src/components/filter_group/filter_button.tsx +++ b/src/components/filter_group/filter_button.tsx @@ -9,7 +9,7 @@ import React, { FunctionComponent } from 'react'; import classNames from 'classnames'; -import { useEuiTheme } from '../../services'; +import { useEuiMemoizedStyles } from '../../services'; import { useEuiI18n } from '../i18n'; import { useInnerText } from '../inner_text'; import { DistributiveOmit } from '../common'; @@ -78,8 +78,7 @@ export const EuiFilterButton: FunctionComponent = ({ const numActiveFiltersDefined = numActiveFilters != null && numActiveFilters > 0; - const euiTheme = useEuiTheme(); - const styles = euiFilterButtonStyles(euiTheme); + const styles = useEuiMemoizedStyles(euiFilterButtonStyles); const cssStyles = [ styles.euiFilterButton, withNext && styles.withNext, @@ -91,7 +90,7 @@ export const EuiFilterButton: FunctionComponent = ({ content: contentStyles, text: textStyles, notification: notificationStyles, - } = euiFilterButtonChildStyles(euiTheme); + } = useEuiMemoizedStyles(euiFilterButtonChildStyles); const classes = classNames( 'euiFilterButton', @@ -118,21 +117,10 @@ export const EuiFilterButton: FunctionComponent = ({ '{count} available filters', { count: badgeCount } ); - - const badgeContent = showBadge && ( - - {badgeCount} - - ); + const badgeStyles = [ + notificationStyles.euiFilterButton__notification, + isDisabled && notificationStyles.disabled, + ]; /** * Text @@ -152,19 +140,6 @@ export const EuiFilterButton: FunctionComponent = ({ const dataText = children && typeof children === 'string' ? children : innerText; - const textContent = ( - - {children} - - ); - return ( = ({ }} {...rest} > - {textContent} - {badgeContent} + + {children} + + + {showBadge && ( + + {badgeCount} + + )} ); }; diff --git a/src/components/filter_group/filter_group.tsx b/src/components/filter_group/filter_group.tsx index a7e2678d4ffb..b3adf9485a22 100644 --- a/src/components/filter_group/filter_group.tsx +++ b/src/components/filter_group/filter_group.tsx @@ -9,7 +9,7 @@ import React, { HTMLAttributes, ReactNode, FunctionComponent } from 'react'; import classNames from 'classnames'; -import { useEuiTheme } from '../../services'; +import { useEuiMemoizedStyles } from '../../services'; import { CommonProps } from '../common'; import { euiFilterGroupStyles } from './filter_group.styles'; @@ -34,8 +34,7 @@ export const EuiFilterGroup: FunctionComponent = ({ compressed, ...rest }) => { - const euiTheme = useEuiTheme(); - const styles = euiFilterGroupStyles(euiTheme); + const styles = useEuiMemoizedStyles(euiFilterGroupStyles); const cssStyles = [ styles.euiFilterGroup, fullWidth && styles.fullWidth,