Skip to content

Commit e432d6f

Browse files
committed
infinity map and canvas height width problem resolved
1 parent 75b7eb7 commit e432d6f

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-img-mapper",
3-
"version": "1.4.3",
3+
"version": "1.5.0",
44
"description": "React Component to highlight interactive zones in images",
55
"keywords": [
66
"react",

src/ImageMapper.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const ImageMapper: React.FC<ImageMapperProps> = (props: ImageMapperProps) => {
4545
const [map, setMap] = useState<Map>(mapProp);
4646
const [storedMap, setStoredMap] = useState<Map>(map);
4747
const [isRendered, setRendered] = useState<boolean>(false);
48+
const [renderCount, setRenderCount] = useState<number>(1);
4849
const [imgRef, setImgRef] = useState<HTMLImageElement>(null);
4950
const container = useRef<Container>(null);
5051
const img = useRef<HTMLImageElement>(null);
@@ -53,11 +54,18 @@ const ImageMapper: React.FC<ImageMapperProps> = (props: ImageMapperProps) => {
5354
const isInitialMount = useRef<boolean>(true);
5455

5556
useEffect(() => {
56-
initCanvas(true);
57-
ctx.current = canvas.current.getContext('2d');
58-
updateCacheMap();
59-
setRendered(true);
60-
}, []);
57+
if (!isRendered && renderCount) {
58+
if (img.current && img.current.complete) {
59+
initCanvas(true);
60+
ctx.current = canvas.current.getContext('2d');
61+
updateCacheMap();
62+
setRendered(true);
63+
setRenderCount(0);
64+
} else {
65+
setRenderCount(prev => prev + 1);
66+
}
67+
}
68+
}, [img, isRendered, renderCount]);
6169

6270
useEffect(() => {
6371
if (isInitialMount.current) {

0 commit comments

Comments
 (0)