20 lines
616 B
TypeScript
20 lines
616 B
TypeScript
|
import { Link, LinkProps } from '@chakra-ui/react';
|
||
|
import React, { Suspense } from 'react';
|
||
|
|
||
|
const ExternalLinkInner =
|
||
|
import.meta.env.VITE_TAURI === '1'
|
||
|
? React.lazy(() => import('./ExternalLink-tauri'))
|
||
|
: React.Fragment;
|
||
|
|
||
|
const ExternalLink = React.forwardRef<HTMLAnchorElement, LinkProps>((props, ref) => {
|
||
|
if (import.meta.env.VITE_TAURI === '1')
|
||
|
return (
|
||
|
<Suspense fallback={<Link {...props} ref={ref} isExternal></Link>}>
|
||
|
<ExternalLinkInner {...props} ref={ref} />
|
||
|
</Suspense>
|
||
|
);
|
||
|
return <Link {...props} ref={ref} isExternal></Link>;
|
||
|
});
|
||
|
|
||
|
export default ExternalLink;
|