9
9
MoveEvent ,
10
10
Point ,
11
11
Tile ,
12
+ TileComponent ,
12
13
TileValues ,
13
14
WAdd ,
14
15
WarningType ,
@@ -94,28 +95,25 @@ function srcSet(
94
95
return dprs . map ( ( dpr ) => url ( x , y , z , dpr ) + ( dpr === 1 ? '' : ` ${ dpr } x` ) ) . join ( ', ' )
95
96
}
96
97
97
- const ImgTile = props => {
98
- let tile = props . tile
99
- return < img
98
+ const ImgTile : TileComponent = ( { tile, tileLoaded } ) => (
99
+ < img
100
100
src = { tile . url }
101
101
srcSet = { tile . srcSet }
102
102
width = { tile . width }
103
103
height = { tile . height }
104
104
loading = { 'lazy' }
105
- onLoad = { ( ) => props . imageLoaded ( tile . key ) }
105
+ onLoad = { tileLoaded }
106
106
alt = { '' }
107
107
style = { {
108
108
position : 'absolute' ,
109
109
left : tile . left ,
110
110
top : tile . top ,
111
111
willChange : 'transform' ,
112
- // TODO: check this
113
- // transform: tile.transform,
114
112
transformOrigin : 'top left' ,
115
113
opacity : 1 ,
116
114
} }
117
115
/>
118
- }
116
+ )
119
117
120
118
export class Map extends Component < MapProps , MapReactState > {
121
119
static defaultProps = {
@@ -133,7 +131,7 @@ export class Map extends Component<MapProps, MapReactState> {
133
131
maxZoom : 18 ,
134
132
limitBounds : 'center' ,
135
133
dprs : [ ] ,
136
- tile : ImgTile
134
+ tileComponent : ImgTile
137
135
}
138
136
139
137
_containerRef ?: HTMLDivElement
@@ -568,7 +566,7 @@ export class Map extends Component<MapProps, MapReactState> {
568
566
return minMax
569
567
}
570
568
571
- imageLoaded = ( key : string ) : void => {
569
+ tileLoaded = ( key : string ) : void => {
572
570
if ( this . _loadTracker && key in this . _loadTracker ) {
573
571
this . _loadTracker [ key ] = true
574
572
@@ -1226,13 +1224,13 @@ export class Map extends Component<MapProps, MapReactState> {
1226
1224
transform : `translate(${ left } px, ${ top } px)` ,
1227
1225
}
1228
1226
1229
- const Tile = this . props . tile
1227
+ const Tile = this . props . tileComponent
1230
1228
1231
1229
return (
1232
1230
< div style = { boxStyle } className = { boxClassname } >
1233
1231
< div className = "pigeon-tiles" style = { tilesStyle } >
1234
1232
{ tiles . map ( ( tile ) => (
1235
- < Tile key = { tile . key } tile = { tile } imageLoaded = { this . imageLoaded } />
1233
+ < Tile key = { tile . key } tile = { tile } tileLoaded = { ( ) => this . tileLoaded ( tile . key ) } />
1236
1234
) ) }
1237
1235
</ div >
1238
1236
</ div >
0 commit comments