Starowo's picture
Upload 1411 files
b9fe2b4 verified
import { Image as AntImage } from 'antd';
import { useEffect, useState } from 'react';
import { Authorization } from '@/constants/authorization';
import { getAuthorization } from '@/utils/authorization-util';
interface ImageProps {
src: string;
preview?: boolean;
}
const Image = ({ src, preview = false }: ImageProps) => {
const [imageSrc, setImageSrc] = useState<string>('');
useEffect(() => {
const loadImage = async () => {
try {
const response = await fetch(src, {
headers: {
[Authorization]: getAuthorization(),
},
});
const blob = await response.blob();
const objectUrl = URL.createObjectURL(blob);
setImageSrc(objectUrl);
} catch (error) {
console.error('Failed to load image:', error);
}
};
loadImage();
return () => {
if (imageSrc) {
URL.revokeObjectURL(imageSrc);
}
};
}, [src]);
return imageSrc ? <AntImage src={imageSrc} preview={preview} /> : null;
};
export default Image;