diff --git a/src/components/ProfileCard.tsx b/src/components/ProfileCard.tsx index 47f31649c..3b719861f 100644 --- a/src/components/ProfileCard.tsx +++ b/src/components/ProfileCard.tsx @@ -38,7 +38,10 @@ import { ButtonText, } from '#/components/Button' import {EphemeralAccountSwitcher} from '#/components/EphemeralAccountSwitcher' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import { + Check_Stroke2_Corner0_Rounded as Check, + DoubleCheck_Stroke2_Corner0_Rounded as DoubleCheck, +} from '#/components/icons/Check' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {Link as InternalLink, type LinkProps} from '#/components/Link' import * as Pills from '#/components/Pills' @@ -586,7 +589,10 @@ export function FollowButtonInner({ void onPressUnfollow(e) }}> {withIcon && ( - + )} {isRound ? null : {unfollowLabel}} diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index af5d258b4..15cb1864b 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -30,7 +30,10 @@ import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {useFollowMethods} from '#/components/hooks/useFollowMethods' import {useRichText} from '#/components/hooks/useRichText' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import { + Check_Stroke2_Corner0_Rounded as Check, + DoubleCheck_Stroke2_Corner0_Rounded as DoubleCheck, +} from '#/components/icons/Check' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import { KnownFollowers, @@ -513,7 +516,14 @@ function Inner({ onPress={profileShadow.viewer?.following ? unfollow : follow}> {profileShadow.viewer?.following diff --git a/src/components/icons/Check.tsx b/src/components/icons/Check.tsx index fe9883baf..3c0c46ac3 100644 --- a/src/components/icons/Check.tsx +++ b/src/components/icons/Check.tsx @@ -7,3 +7,7 @@ export const Check_Stroke2_Corner0_Rounded = createSinglePathSVG({ export const CheckThick_Stroke2_Corner0_Rounded = createSinglePathSVG({ path: 'M21.474 2.98a2.5 2.5 0 0 1 .545 3.494l-10.222 14a2.5 2.5 0 0 1-3.528.52L2.49 16.617a2.5 2.5 0 0 1 3.018-3.986l3.75 2.84L17.98 3.525a2.5 2.5 0 0 1 3.493-.545Z', }) + +export const DoubleCheck_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M 18.850814,2.9270055 C 18.544206,2.9339155 18.258318,3.083265 18.077499,3.330976 L 9.3863645,15.392379 10.93107,16.617756 19.668374,4.4928718 C 19.988818,4.053997 19.893267,3.4385137 19.454847,3.1174487 19.279961,2.9891973 19.067634,2.9222535 18.850814,2.9270055 Z m 4.143583,0.055787 C 22.687789,2.9897025 22.4019,3.1390521 22.221082,3.386763 L 11.298491,18.318279 5.9026003,14.030422 C 4.8739764,13.212603 3.6485994,14.755385 4.6772234,15.573204 l 6.1980606,4.924592 c 0.438229,0.348133 1.078115,0.26159 1.408126,-0.190444 L 23.811956,4.5486583 C 24.1324,4.1097833 24.03685,3.4943001 23.598429,3.1732351 23.423543,3.0449836 23.211217,2.9780399 22.994397,2.9827925 Z M 0.97800837,14.174697 c -0.93232486,0.0069 -1.3340716,1.185102 -0.60018465,1.760156 L 6.5758845,20.859445 C 7.0141139,21.207578 7.6539998,21.121037 7.98401,20.669002 L 8.5341792,19.914924 C 6.2110596,18.089081 3.9159262,16.229985 1.6032007,14.392071 1.4261197,14.24966 1.2052421,14.172863 0.97800837,14.174697 Z', +}) diff --git a/src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx b/src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx index d639bcc44..70009f87e 100644 --- a/src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx +++ b/src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx @@ -17,7 +17,10 @@ import {atoms as a, useBreakpoints} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {EphemeralAccountSwitcher} from '#/components/EphemeralAccountSwitcher' import {useEphemeralFollowAction} from '#/components/hooks/useEphemeralFollowAction' -import {Check_Stroke2_Corner0_Rounded as CheckIcon} from '#/components/icons/Check' +import { + Check_Stroke2_Corner0_Rounded as CheckIcon, + DoubleCheck_Stroke2_Corner0_Rounded as DoubleCheckIcon, +} from '#/components/icons/Check' import {PlusLarge_Stroke2_Corner0_Rounded as PlusIcon} from '#/components/icons/Plus' import * as Toast from '#/components/Toast' import {IS_IOS} from '#/env' @@ -161,7 +164,16 @@ function PostThreadFollowBtnLoaded({ color={isFollowing ? 'secondary' : 'secondary_inverted'} style={enableSquareButtons ? [a.rounded_sm] : [a.rounded_full]}> {gtMobile && ( - + )} {!isFollowing ? ( @@ -179,21 +191,19 @@ function PostThreadFollowBtnLoaded({ ) - return ( - currentAccount && hasAlternateAccounts ? ( - { - void onSelectEphemeralAccount(account) - }} - renderTrigger={({triggerProps}) => - renderFollowButton(triggerProps.onLongPress) - } - /> - ) : ( - renderFollowButton() - ) + return currentAccount && hasAlternateAccounts ? ( + { + void onSelectEphemeralAccount(account) + }} + renderTrigger={({triggerProps}) => + renderFollowButton(triggerProps.onLongPress) + } + /> + ) : ( + renderFollowButton() ) } diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index 084009882..0b6604954 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -42,9 +42,14 @@ import {SubscribeProfileButton} from '#/components/activity-notifications/Subscr import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DebugFieldDisplay} from '#/components/DebugFieldDisplay' import {useDialogControl} from '#/components/Dialog' -import {EphemeralAccountSwitcher} from '#/components/EphemeralAccountSwitcher' import {MessageProfileButton} from '#/components/dms/MessageProfileButton' +import {EphemeralAccountSwitcher} from '#/components/EphemeralAccountSwitcher' +import {useEphemeralFollowAction} from '#/components/hooks/useEphemeralFollowAction' import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' +import { + Check_Stroke2_Corner0_Rounded as Check, + DoubleCheck_Stroke2_Corner0_Rounded as DoubleCheck, +} from '#/components/icons/Check' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import { @@ -65,7 +70,6 @@ import {ProfileHeaderHandle} from './Handle' import {ProfileHeaderMetrics} from './Metrics' import {ProfileHeaderShell} from './Shell' import {ProfileHeaderSuggestedFollows} from './SuggestedFollows' -import {useEphemeralFollowAction} from '#/components/hooks/useEphemeralFollowAction' interface Props { profile: AppBskyActorDefs.ProfileViewDetailed @@ -472,82 +476,91 @@ export function HeaderStandardButtons({ )} {(!minimal || !profile.viewer?.following) && - !(minimal && hideScaryFollowButtons) && ( - (currentAccount && hasAlternateAccounts ? ( - { - void onSelectEphemeralAccount(account) - }} - renderTrigger={({triggerProps}) => ( - - )} - /> - ) : ( - + )} + /> + ) : ( + - )) - )} + Following + ) + ) : profile.viewer?.followedBy ? ( + Follow back + ) : ( + Follow + )} + + + ))} ) : null} diff --git a/src/view/com/notifications/NotificationFeedItem.tsx b/src/view/com/notifications/NotificationFeedItem.tsx index b9613ec8e..327e05a34 100644 --- a/src/view/com/notifications/NotificationFeedItem.tsx +++ b/src/view/com/notifications/NotificationFeedItem.tsx @@ -47,7 +47,10 @@ import {PreviewableUserAvatar, UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, platform, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {BellRinging_Filled_Corner0_Rounded as BellRingingIcon} from '#/components/icons/BellRinging' -import {Check_Stroke2_Corner0_Rounded as CheckIcon} from '#/components/icons/Check' +import { + Check_Stroke2_Corner0_Rounded as CheckIcon, + DoubleCheck_Stroke2_Corner0_Rounded as DoubleCheckIcon, +} from '#/components/icons/Check' import { ChevronBottom_Stroke2_Corner0_Rounded as ChevronDownIcon, ChevronTop_Stroke2_Corner0_Rounded as ChevronUpIcon, @@ -835,7 +838,7 @@ function FollowBackButton({profile}: {profile: AppBskyActorDefs.ProfileView}) { size="small" style={[a.self_start]} onPress={onPressUnfollow}> - + {isFollowedBy ? Mutuals : Following}