File tree Expand file tree Collapse file tree 2 files changed +14
-6
lines changed Expand file tree Collapse file tree 2 files changed +14
-6
lines changed Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " react-img-mapper" ,
3
- "version" : " 1.4.3 " ,
3
+ "version" : " 1.5.0 " ,
4
4
"description" : " React Component to highlight interactive zones in images" ,
5
5
"keywords" : [
6
6
" react" ,
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ const ImageMapper: React.FC<ImageMapperProps> = (props: ImageMapperProps) => {
45
45
const [ map , setMap ] = useState < Map > ( mapProp ) ;
46
46
const [ storedMap , setStoredMap ] = useState < Map > ( map ) ;
47
47
const [ isRendered , setRendered ] = useState < boolean > ( false ) ;
48
+ const [ renderCount , setRenderCount ] = useState < number > ( 1 ) ;
48
49
const [ imgRef , setImgRef ] = useState < HTMLImageElement > ( null ) ;
49
50
const container = useRef < Container > ( null ) ;
50
51
const img = useRef < HTMLImageElement > ( null ) ;
@@ -53,11 +54,18 @@ const ImageMapper: React.FC<ImageMapperProps> = (props: ImageMapperProps) => {
53
54
const isInitialMount = useRef < boolean > ( true ) ;
54
55
55
56
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 ] ) ;
61
69
62
70
useEffect ( ( ) => {
63
71
if ( isInitialMount . current ) {
You can’t perform that action at this time.
0 commit comments