diff options
Diffstat (limited to 'src/components/Link.tsx')
-rw-r--r-- | src/components/Link.tsx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/components/Link.tsx b/src/components/Link.tsx index 26cea5968..8bebecbc8 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -69,6 +69,11 @@ type BaseLinkProps = Pick< * Native-only attribute. If true, will open the share sheet on long press. */ shareOnLongPress?: boolean + + /** + * Whether the link should be opened through the redirect proxy. + */ + shouldProxy?: boolean } export function useLink({ @@ -80,9 +85,11 @@ export function useLink({ onLongPress: outerOnLongPress, shareOnLongPress, overridePresentation, + shouldProxy, }: BaseLinkProps & { displayText: string overridePresentation?: boolean + shouldProxy?: boolean }) { const navigation = useNavigationDeduped() const {href} = useLinkProps<AllNavigatorParams>({ @@ -118,7 +125,7 @@ export function useLink({ }) } else { if (isExternal) { - openLink(href, overridePresentation) + openLink(href, overridePresentation, shouldProxy) } else { const shouldOpenInNewTab = shouldClickOpenNewTab(e) @@ -161,6 +168,7 @@ export function useLink({ action, navigation, overridePresentation, + shouldProxy, ], ) @@ -219,6 +227,7 @@ export function Link({ onPress: outerOnPress, onLongPress: outerOnLongPress, download, + shouldProxy, ...rest }: LinkProps) { const {href, isExternal, onPress, onLongPress} = useLink({ @@ -227,6 +236,7 @@ export function Link({ action, onPress: outerOnPress, onLongPress: outerOnLongPress, + shouldProxy: shouldProxy, }) return ( @@ -279,6 +289,7 @@ export function InlineLinkText({ shareOnLongPress, disableUnderline, overridePresentation, + shouldProxy, ...rest }: InlineLinkProps) { const t = useTheme() @@ -292,6 +303,7 @@ export function InlineLinkText({ onLongPress: outerOnLongPress, shareOnLongPress, overridePresentation, + shouldProxy: shouldProxy, }) const { state: hovered, |