From 568078c8957c006764f98b70b6a04748ff251d16 Mon Sep 17 00:00:00 2001 From: Sarah Higley Date: Thu, 13 Jul 2023 11:45:48 -0700 Subject: [PATCH 1/3] update splitbutton and menu splitbutton to have two touch targets if checkable --- packages/react/src/components/Button/BaseButton.tsx | 7 +++++-- .../ContextualMenuSplitButton.tsx | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/react/src/components/Button/BaseButton.tsx b/packages/react/src/components/Button/BaseButton.tsx index f066368adfd030..94d0917462d5d7 100644 --- a/packages/react/src/components/Button/BaseButton.tsx +++ b/packages/react/src/components/Button/BaseButton.tsx @@ -678,9 +678,12 @@ export class BaseButton extends React.Component Date: Thu, 13 Jul 2023 11:54:58 -0700 Subject: [PATCH 2/3] test, update snapshots --- .../src/components/Button/Button.test.tsx | 35 +++++++++++++++++++ ...alMenuSplitButton.deprecated.test.tsx.snap | 4 ++- .../ContextualMenuSplitButton.test.tsx.snap | 4 ++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/packages/react/src/components/Button/Button.test.tsx b/packages/react/src/components/Button/Button.test.tsx index 1f824f2099ac04..76191904f950ca 100644 --- a/packages/react/src/components/Button/Button.test.tsx +++ b/packages/react/src/components/Button/Button.test.tsx @@ -592,6 +592,41 @@ describe('Button', () => { expect(getAllByRole('button')[0].getAttribute('aria-expanded')).toEqual('true'); }); + it('Touch Start on primary button of toggle SplitButton fires click event', () => { + const clickSpy = jest.fn(); + const { getAllByRole } = render( + , + ); + const primaryButton = getAllByRole('button')[1]; + + // in a normal scenario, when we do a touchstart we would also cause a + // click event to fire. This doesn't happen in the simulator so we're + // manually adding this in. + fireEvent.touchStart(primaryButton); + userEvent.click(primaryButton); + expect(clickSpy).toHaveBeenCalled(); + }); + it('If menu trigger is disabled, pressing down does not trigger menu', () => { const { getAllByRole } = render(