Removed shamefully-hoist and updated all packages to respect that

This commit is contained in:
giancarlo
2024-04-10 01:45:03 +08:00
parent 9e1199f3f4
commit f729bf6077
33 changed files with 1504 additions and 1470 deletions

View File

@@ -1,80 +0,0 @@
import { forwardRef } from 'react';
import Image from 'next/image';
import { cn } from '../utils';
import { LazyRender } from './lazy-render';
const NextImage: React.FC<{
width: number;
height: number;
src: string;
alt: string;
class?: string;
}> = (props) => {
const className = cn(props.class, `object-cover`);
return <Image className={className} src={props.src} alt={props.alt} />;
};
const ExternalLink = forwardRef<
React.ElementRef<'a'>,
React.AnchorHTMLAttributes<unknown>
>(function ExternalLink(props, ref) {
const href = props.href ?? '';
const isRoot = href === '/';
const isInternalLink =
isRoot || href.startsWith(process.env.NEXT_PUBLIC_SITE_URL!);
if (isInternalLink) {
return (
<a {...props} ref={ref} href={href}>
{props.children}
</a>
);
}
return (
<a
href={href}
ref={ref}
{...props}
target="_blank"
rel="noopener noreferrer"
>
{props.children}
</a>
);
});
const Video: React.FC<{
src: string;
width?: string;
type?: string;
}> = ({ src, type, width }) => {
const useType = type ?? 'video/mp4';
return (
<LazyRender rootMargin={'-200px 0px'}>
<video
className="my-4"
width={width ?? `100%`}
height="auto"
playsInline
autoPlay
muted
loop
>
<source src={src} type={useType} />
</video>
</LazyRender>
);
};
export const MDXComponents = {
img: NextImage,
a: ExternalLink,
Video,
Image: NextImage,
};