You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
724 B
25 lines
724 B
import { Link } from 'expo-router'; |
|
import * as WebBrowser from 'expo-web-browser'; |
|
import React from 'react'; |
|
import { Platform } from 'react-native'; |
|
|
|
export function ExternalLink( |
|
props: Omit<React.ComponentProps<typeof Link>, 'href'> & { href: string } |
|
) { |
|
return ( |
|
<Link |
|
target="_blank" |
|
{...props} |
|
// @ts-expect-error: External URLs are not typed. |
|
href={props.href} |
|
onPress={(e) => { |
|
if (Platform.OS !== 'web') { |
|
// Prevent the default behavior of linking to the default browser on native. |
|
e.preventDefault(); |
|
// Open the link in an in-app browser. |
|
WebBrowser.openBrowserAsync(props.href as string); |
|
} |
|
}} |
|
/> |
|
); |
|
}
|
|
|