import type { ImgHTMLAttributes } from 'react'; import clsx from 'clsx'; import { Img } from 'react-image'; import styles from './image.module.css'; import { Icon } from '/@/shared/components/icon/icon'; import { Skeleton } from '/@/shared/components/skeleton/skeleton'; interface ImageContainerProps { children: React.ReactNode; className?: string; } interface ImageLoaderProps { className?: string; } interface ImageProps extends Omit, 'src'> { containerClassName?: string; includeLoader?: boolean; includeUnloader?: boolean; src: string | string[] | undefined; thumbHash?: string; } interface ImageUnloaderProps { className?: string; } export function Image({ className, containerClassName, includeLoader = true, includeUnloader = true, src, }: ImageProps) { if (src) { return ( ( {children} )} loader={ includeLoader ? ( ) : null } loading="lazy" src={src} unloader={ includeUnloader ? ( ) : null } /> ); } return ; } function ImageContainer({ children, className }: ImageContainerProps) { return
{children}
; } function ImageLoader({ className }: ImageLoaderProps) { return (
); } function ImageUnloader({ className }: ImageUnloaderProps) { return (
); }