From cfb97c61c1538d189d1d4a7465f06aaa23560c29 Mon Sep 17 00:00:00 2001 From: Julien Wajsberg Date: Wed, 30 Mar 2022 14:55:29 +0200 Subject: [PATCH] Use the whole list item as the click target Fixes #3962 --- src/components/shared/FilterNavigatorBar.js | 93 +++++++++++-------- .../FilterNavigatorBar.test.js.snap | 6 +- .../ProfileCallTreeView.test.js.snap | 2 +- 3 files changed, 60 insertions(+), 41 deletions(-) diff --git a/src/components/shared/FilterNavigatorBar.js b/src/components/shared/FilterNavigatorBar.js index 0fe2bb0257..d9f1682fd3 100644 --- a/src/components/shared/FilterNavigatorBar.js +++ b/src/components/shared/FilterNavigatorBar.js @@ -9,27 +9,53 @@ import classNames from 'classnames'; import { CSSTransition, TransitionGroup } from 'react-transition-group'; import './FilterNavigatorBar.css'; -type FilterNavigatorBarButtonProps = {| - onClick: (number) => mixed, - index: number, - children: React.Node, +type FilterNavigatorBarListItemProps = {| + +onClick?: null | ((number) => mixed), + +index: number, + +isFirstItem: boolean, + +isLastItem: boolean, + +isSelectedItem: boolean, + +title?: string, + +additionalClassName?: string, + +children: React.Node, |}; -class FilterNavigatorBarButton extends React.PureComponent { +class FilterNavigatorBarListItem extends React.PureComponent { _onClick = () => { const { index, onClick } = this.props; - onClick(index); + if (onClick) { + onClick(index); + } }; render() { + const { + isFirstItem, + isLastItem, + isSelectedItem, + children, + additionalClassName, + onClick, + title, + } = this.props; return ( - + {onClick ? ( + + ) : ( + {children} + )} + ); } } @@ -57,22 +83,17 @@ export class FilterNavigatorBar extends React.PureComponent { classNames="filterNavigatorBarTransition" timeout={250} > -
  • - {i === items.length - 1 && !uncommittedItem ? ( - {item} - ) : ( - - {item} - - )} -
  • + {item} + ))} {uncommittedItem ? ( @@ -81,18 +102,16 @@ export class FilterNavigatorBar extends React.PureComponent { classNames="filterNavigatorBarUncommittedTransition" timeout={0} > -
  • - - {uncommittedItem} - -
  • + {uncommittedItem} + ) : null} diff --git a/src/test/components/__snapshots__/FilterNavigatorBar.test.js.snap b/src/test/components/__snapshots__/FilterNavigatorBar.test.js.snap index 13cc7bbd05..1812b085a7 100644 --- a/src/test/components/__snapshots__/FilterNavigatorBar.test.js.snap +++ b/src/test/components/__snapshots__/FilterNavigatorBar.test.js.snap @@ -21,7 +21,7 @@ exports[`app/ProfileFilterNavigator renders ProfileFilterNavigator properly 2`] class="filterNavigatorBar profileFilterNavigator" >