28 lines
610 B
TypeScript
28 lines
610 B
TypeScript
import { Link } from "expo-router"
|
|
import * as WebBrowser from "expo-web-browser"
|
|
import { Platform } from "react-native"
|
|
|
|
type LinkProps = React.ComponentProps<typeof Link>
|
|
|
|
export const ExternalLink: React.FC<
|
|
Omit<LinkProps, "href"> & {
|
|
href: string
|
|
}
|
|
> = (props) => {
|
|
const { href, ...rest } = props
|
|
|
|
return (
|
|
<Link
|
|
target="_blank"
|
|
href={href as unknown as LinkProps["href"]}
|
|
{...rest}
|
|
onPress={async (event) => {
|
|
if (Platform.OS !== "web") {
|
|
event.preventDefault()
|
|
await WebBrowser.openBrowserAsync(href)
|
|
}
|
|
}}
|
|
/>
|
|
)
|
|
}
|