Skip to content

Commit 361f710

Browse files
committed
fix: unnecessary img placeholder logic on every rerender
1 parent 459d0f1 commit 361f710

1 file changed

Lines changed: 6 additions & 11 deletions

File tree

src/web/useImageErrorFallback.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,7 @@ export const useImageErrorFallback = (
2020

2121
container.addEventListener('error', handleImageError, true);
2222

23-
return () => {
24-
container.removeEventListener('error', handleImageError, true);
25-
};
26-
}, [containerRef]);
27-
28-
// handle the cached unloaded images that will not emit the error event
29-
useEffect(() => {
30-
const container = containerRef.current;
31-
if (!container) return;
32-
23+
// handle <img> elements that emitted an error event before we could set up a listener
3324
const images =
3425
container.querySelectorAll<HTMLImageElement>('img:not(.error)');
3526

@@ -38,5 +29,9 @@ export const useImageErrorFallback = (
3829
img.classList.add('error');
3930
}
4031
});
41-
});
32+
33+
return () => {
34+
container.removeEventListener('error', handleImageError, true);
35+
};
36+
}, [containerRef]);
4237
};

0 commit comments

Comments
 (0)