about summary refs log tree commit diff
path: root/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'src/view')
-rw-r--r--src/view/com/profile/ProfileHeader.tsx15
-rw-r--r--src/view/com/util/forms/DropdownButton.tsx15
2 files changed, 5 insertions, 25 deletions
diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx
index e7597608a..c295b2716 100644
--- a/src/view/com/profile/ProfileHeader.tsx
+++ b/src/view/com/profile/ProfileHeader.tsx
@@ -1,7 +1,6 @@
 import React from 'react'
 import {observer} from 'mobx-react-lite'
 import {
-  Share,
   StyleSheet,
   TouchableOpacity,
   TouchableWithoutFeedback,
@@ -31,9 +30,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 {isAndroid, isDesktopWeb, isIOS} from 'platform/detection'
+import {isDesktopWeb} from 'platform/detection'
 import {FollowState} from 'state/models/cache/my-follows'
-import Clipboard from '@react-native-clipboard/clipboard'
+import {shareUrl} from 'lib/sharing'
 
 const BACK_HITSLOP = {left: 30, top: 30, right: 30, bottom: 30}
 
@@ -152,15 +151,7 @@ const ProfileHeaderLoaded = observer(function ProfileHeaderLoaded({
   const onPressShare = React.useCallback(async () => {
     track('ProfileHeader:ShareButtonClicked')
     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')
-    }
+    shareUrl(url)
   }, [track, view])
 
   const onPressMuteAccount = React.useCallback(async () => {
diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx
index fcb209005..725d45c1b 100644
--- a/src/view/com/util/forms/DropdownButton.tsx
+++ b/src/view/com/util/forms/DropdownButton.tsx
@@ -1,7 +1,6 @@
 import React, {useRef} from 'react'
 import {
   Dimensions,
-  Share,
   StyleProp,
   StyleSheet,
   TouchableOpacity,
@@ -19,10 +18,8 @@ import {toShareUrl} from 'lib/strings/url-helpers'
 import {useStores} from 'state/index'
 import {usePalette} from 'lib/hooks/usePalette'
 import {useTheme} from 'lib/ThemeContext'
-import {isAndroid, isIOS} from 'platform/detection'
-import Clipboard from '@react-native-clipboard/clipboard'
-import * as Toast from '../../util/Toast'
 import {isWeb} from 'platform/detection'
+import {shareUrl} from 'lib/sharing'
 
 const HITSLOP = {left: 10, top: 10, right: 10, bottom: 10}
 const ESTIMATED_BTN_HEIGHT = 50
@@ -182,15 +179,7 @@ export function PostDropdownBtn({
       label: 'Share...',
       onPress() {
         const url = toShareUrl(itemHref)
-
-        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')
-        }
+        shareUrl(url)
       },
     },
     {sep: true},