From a7f748b931b3de92df6d36abc09227bbf8326e25 Mon Sep 17 00:00:00 2001 From: Spence Pope Date: Thu, 11 Jun 2026 12:04:46 -0400 Subject: [PATCH] Fix overlapping touch targets for profile header buttons (#10868) --- src/screens/Profile/Header/ProfileHeaderStandard.tsx | 4 ++++ src/view/com/profile/ProfileMenu.tsx | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index e023753515..72f98d799d 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -360,6 +360,10 @@ export function HeaderStandardButtons({ size="small" color="secondary" shape="round" + // expand the 33pt button toward a 44pt touch target, capped + // horizontally at half the 4pt row gap so the target cannot + // overlap the neighboring buttons' own targets + hitSlop={{top: 6, bottom: 6, left: 2, right: 2}} onPress={() => { playHaptic('Light') ax.metric('invite:dialog:open', {logContext: 'ProfileHeader'}) diff --git a/src/view/com/profile/ProfileMenu.tsx b/src/view/com/profile/ProfileMenu.tsx index 5e6c266ea8..9e42db2d64 100644 --- a/src/view/com/profile/ProfileMenu.tsx +++ b/src/view/com/profile/ProfileMenu.tsx @@ -4,7 +4,6 @@ import {Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {HITSLOP_20} from '#/lib/constants' import {makeProfileLink} from '#/lib/routes/links' import {type NavigationProp} from '#/lib/routes/types' import {shareText, shareUrl} from '#/lib/sharing' @@ -264,7 +263,10 @@ let ProfileMenu = ({ {...props} testID="profileHeaderDropdownBtn" label={l`More options`} - hitSlop={HITSLOP_20} + // hitSlop reaches outside parent views on iOS, so the + // left inset must stay within half of the 4pt row gap or + // it steals taps from the adjacent header button + hitSlop={{top: 6, bottom: 6, left: 2, right: 12}} variant="solid" color="secondary" size="small"