From 4977a5d2a3154083bc2ae63f9bf85d8b63140783 Mon Sep 17 00:00:00 2001 From: Ansh Date: Wed, 13 Sep 2023 02:17:55 +0530 Subject: [PATCH] Fix 651 Make followers and following button into a `` (#1429) * make followers and following button into a Link * make buttons into `` tags --- src/lib/analytics/types.ts | 8 +++-- src/view/com/profile/ProfileHeader.tsx | 43 ++++++++++++-------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts index 5f943731..4fcd3ebd 100644 --- a/src/lib/analytics/types.ts +++ b/src/lib/analytics/types.ts @@ -56,8 +56,12 @@ interface TrackPropertiesMap { } // PROFILE HEADER events 'ProfileHeader:EditProfileButtonClicked': {} - 'ProfileHeader:FollowersButtonClicked': {} - 'ProfileHeader:FollowsButtonClicked': {} + 'ProfileHeader:FollowersButtonClicked': { + handle: string + } + 'ProfileHeader:FollowsButtonClicked': { + handle: string + } 'ProfileHeader:ShareButtonClicked': {} 'ProfileHeader:MuteAccountButtonClicked': {} 'ProfileHeader:UnmuteAccountButtonClicked': {} diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index b52d338a..cafb3774 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -33,11 +33,11 @@ import {isNative} from 'platform/detection' import {FollowState} from 'state/models/cache/my-follows' import {shareUrl} from 'lib/sharing' import {formatCount} from '../util/numeric/format' -import {navigate} from '../../../Navigation' import {NativeDropdown, DropdownItem} from '../util/forms/NativeDropdown' import {BACK_HITSLOP} from 'lib/constants' import {isInvalidHandle} from 'lib/strings/handles' import {makeProfileLink} from 'lib/routes/links' +import {Link} from '../util/Link' interface Props { view: ProfileModel @@ -152,21 +152,14 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoadedImpl({ }) }, [track, store, view, onRefreshAll]) - const onPressFollowers = React.useCallback(() => { - track('ProfileHeader:FollowersButtonClicked') - navigate('ProfileFollowers', { - name: isInvalidHandle(view.handle) ? view.did : view.handle, - }) - store.shell.closeAllActiveElements() // for when used in the profile preview modal - }, [track, view, store.shell]) - - const onPressFollows = React.useCallback(() => { - track('ProfileHeader:FollowsButtonClicked') - navigate('ProfileFollows', { - name: isInvalidHandle(view.handle) ? view.did : view.handle, - }) - store.shell.closeAllActiveElements() // for when used in the profile preview modal - }, [track, view, store.shell]) + const trackPress = React.useCallback( + (f: 'Followers' | 'Follows') => { + track(`ProfileHeader:${f}ButtonClicked`, { + handle: view.handle, + }) + }, + [track, view], + ) const onPressShare = React.useCallback(() => { track('ProfileHeader:ShareButtonClicked') @@ -460,11 +453,12 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoadedImpl({ {!blockHide && ( <> - trackPress('Followers')} + asAnchor accessibilityLabel={`${followers} ${pluralizedFollowers}`} accessibilityHint={'Opens followers list'}> @@ -473,12 +467,13 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoadedImpl({ {pluralizedFollowers} - - + trackPress('Follows')} + asAnchor accessibilityLabel={`${following} following`} accessibilityHint={'Opens following list'}> @@ -487,7 +482,7 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoadedImpl({ following - + {formatCount(view.postsCount)}{' '}