about summary refs log tree commit diff
path: root/src/view/com/profile/ProfileHeader.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com/profile/ProfileHeader.tsx')
-rw-r--r--src/view/com/profile/ProfileHeader.tsx16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx
index 4c232a13a..e7597608a 100644
--- a/src/view/com/profile/ProfileHeader.tsx
+++ b/src/view/com/profile/ProfileHeader.tsx
@@ -31,8 +31,9 @@ import {ProfileHeaderLabels} from '../util/moderation/ProfileHeaderLabels'
 import {usePalette} from 'lib/hooks/usePalette'
 import {useAnalytics} from 'lib/analytics'
 import {NavigationProp} from 'lib/routes/types'
-import {isDesktopWeb} from 'platform/detection'
+import {isAndroid, isDesktopWeb, isIOS} from 'platform/detection'
 import {FollowState} from 'state/models/cache/my-follows'
+import Clipboard from '@react-native-clipboard/clipboard'
 
 const BACK_HITSLOP = {left: 30, top: 30, right: 30, bottom: 30}
 
@@ -148,9 +149,18 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoaded({
     navigation.push('ProfileFollows', {name: view.handle})
   }, [track, navigation, view])
 
-  const onPressShare = React.useCallback(() => {
+  const onPressShare = React.useCallback(async () => {
     track('ProfileHeader:ShareButtonClicked')
-    Share.share({url: toShareUrl(`/profile/${view.handle}`)})
+    const url = toShareUrl(`/profile/${view.handle}`)
+
+    if (isIOS || isAndroid) {
+      Share.share({url})
+    } else {
+      // React Native Share is not supported by web. Web Share API
+      // has increasing but not full support, so default to clipboard
+      Clipboard.setString(url)
+      Toast.show('Copied to clipboard')
+    }
   }, [track, view])
 
   const onPressMuteAccount = React.useCallback(async () => {