I found a solution myself.
const GifCard = ({
gif,
onClick
}: {
gif: Gif;
onClick: (gif: Gif) => void;
}) => {
const [isLoading, setIsLoading] = useState(true);
return (
<>
<Skeleton
w="100%"
maw={160}
radius="xs"
aria-label="gif skeleton"
h={gif.media_formats.gif.duration > 3 ? 160 : 90}
style={{ display: isLoading ? 'block' : 'none' }}
/>
<Image
src={gif.media_formats.gif.url}
w="100%"
maw={160}
radius="xs"
alt="GIF"
onLoad={() => setIsLoading(false)}
style={{ display: isLoading ? 'none' : 'block' }}
onClick={() => onClick(gif)}
/>
</>
);
};