about summary refs log tree commit diff
path: root/src/platform/urls.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/urls.tsx')
-rw-r--r--src/platform/urls.tsx15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/platform/urls.tsx b/src/platform/urls.tsx
index fd844d933..fd9d297aa 100644
--- a/src/platform/urls.tsx
+++ b/src/platform/urls.tsx
@@ -1,4 +1,5 @@
-import {Linking} from 'react-native'
+import {GestureResponderEvent, Linking} from 'react-native'
+
 import {isNative, isWeb} from './detection'
 
 export async function getInitialURL(): Promise<string | undefined> {
@@ -23,3 +24,15 @@ export function clearHash() {
     window.location.hash = ''
   }
 }
+
+export function shouldClickOpenNewTab(e: GestureResponderEvent) {
+  /**
+   * A `GestureResponderEvent`, but cast to `any` to avoid using a bunch
+   * of @ts-ignore below.
+   */
+  const event = e as any
+  const isMiddleClick = isWeb && event.button === 1
+  const isMetaKey =
+    isWeb && (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)
+  return isMetaKey || isMiddleClick
+}