Skip to content

Commit 9cc359b

Browse files
committed
Fix progressive images not setting loaded state if pre-loaded
1 parent 8c3b5d2 commit 9cc359b

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/components/Lightbox.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export default function Lightbox({
4242
: null;
4343
const imageProps =
4444
typeof currentImage === 'object' ? currentImage : { src: currentImage };
45+
4546
const previousImage = useCallback(() => {
4647
if (onChangeImage) {
4748
if (loop) {
@@ -51,6 +52,7 @@ export default function Lightbox({
5152
}
5253
}
5354
}, [currentIndex, images, loop, onChangeImage]);
55+
5456
const nextImage = useCallback(() => {
5557
if (onChangeImage) {
5658
if (loop) {
@@ -60,8 +62,10 @@ export default function Lightbox({
6062
}
6163
}
6264
}, [currentIndex, images, loop, onChangeImage]);
65+
6366
useKeyboardEvent('ArrowLeft', previousImage);
6467
useKeyboardEvent('ArrowRight', nextImage);
68+
6569
return (
6670
<Overlay
6771
animated={animated}

src/components/ProgressiveImage.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use client';
22

33
import classNames from 'classnames';
4-
import React, { useEffect, useState } from 'react';
4+
import React, { useCallback, useEffect, useState } from 'react';
55
import LoadingSpinner from './LoadingSpinner';
66

77
export type ProgressiveImageProps = {
@@ -42,6 +42,10 @@ export default function ProgressiveImage({
4242
}: ProgressiveImageProps) {
4343
const [loaded, setLoaded] = useState(false);
4444

45+
const ref = useCallback((img: HTMLImageElement) => {
46+
setLoaded(img.complete);
47+
}, []);
48+
4549
useEffect(() => {
4650
if (loaded && onLoad) {
4751
onLoad();
@@ -74,6 +78,7 @@ export default function ProgressiveImage({
7478
onLoad={e => setLoaded(true)}
7579
width={width || imageProps.width}
7680
height={height || imageProps.height}
81+
ref={ref}
7782
src={src}
7883
/>
7984
{placeholder && (

0 commit comments

Comments
 (0)