about summary refs log tree commit diff
path: root/src/lib/sharing.ts
diff options
context:
space:
mode:
authorAnsh Nanda <anshnanda10@gmail.com>2023-04-25 13:45:46 -0700
committerAnsh Nanda <anshnanda10@gmail.com>2023-04-25 13:45:46 -0700
commitd0d24ea248a74df89c0033a2f63787aaa2f0402d (patch)
treebf7bfdb7bff64a1ceab06d6c9d0ae6e1d765cdb5 /src/lib/sharing.ts
parent3463f601a360af5f3a4b643a787e44865c4c790c (diff)
downloadvoidsky-d0d24ea248a74df89c0033a2f63787aaa2f0402d.tar.zst
consolidated share code to shareUrl
Diffstat (limited to 'src/lib/sharing.ts')
-rw-r--r--src/lib/sharing.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts
new file mode 100644
index 000000000..95ebf8ee9
--- /dev/null
+++ b/src/lib/sharing.ts
@@ -0,0 +1,22 @@
+import {isNative} from 'platform/detection'
+// import * as Sharing from 'expo-sharing'
+import Clipboard from '@react-native-clipboard/clipboard'
+import * as Toast from '../view/com/util/Toast'
+import {Share} from 'react-native'
+
+/**
+ * This function shares a URL using the native Share API if available, or copies it to the clipboard
+ * and displays a toast message if not (mostly on web)
+ * @param {string} url - A string representing the URL that needs to be shared or copied to the
+ * clipboard.
+ */
+export async function shareUrl(url: string) {
+  if (isNative) {
+    Share.share({url: 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')
+  }
+}