Cherry pick preset image error fallback

This commit is contained in:
Quincy Morgan
2019-11-07 20:04:35 +01:00
parent f45670a9a7
commit 9d367d133f
2 changed files with 29 additions and 16 deletions

View File

@@ -1193,6 +1193,14 @@ a.hide-toggle {
height: 50px;
object-fit: contain;
border-radius: 2px;
z-index: 2;
visibility: hidden;
}
.preset-icon-container.showing-img img.image-icon {
visibility: visible;
}
.preset-icon-container.showing-img *:not(.image-icon) {
visibility: hidden;
}
.preset-icon-point-border path {

View File

@@ -202,7 +202,7 @@ export function uiPresetIcon(context) {
geom = 'route';
}
var imageURL = p.imageURL;
var picon = imageURL ? null : getIcon(p, geom);
var picon = getIcon(p, geom);
var isMaki = picon && /^maki-/.test(picon);
var isTemaki = picon && /^temaki-/.test(picon);
var isFa = picon && /^fa[srb]-/.test(picon);
@@ -236,20 +236,6 @@ export function uiPresetIcon(context) {
container.classed('fallback', isFallback);
var imageIcon = container.selectAll('img.image-icon')
.data(imageURL ? [0] : []);
imageIcon.exit()
.remove();
imageIcon = imageIcon.enter()
.append('img')
.attr('class', 'image-icon')
.merge(imageIcon);
imageIcon
.attr('src', imageURL);
var pointBorder = container.selectAll('.preset-icon-point-border')
.data(drawPoint ? [0] : []);
@@ -329,7 +315,6 @@ export function uiPresetIcon(context) {
}
var icon = container.selectAll('.preset-icon')
.data(picon ? [0] : []);
@@ -355,6 +340,26 @@ export function uiPresetIcon(context) {
icon.selectAll('use')
.attr('href', '#' + picon + (isMaki ? (isSmall() && geom === 'point' ? '-11' : '-15') : ''));
var imageIcon = container.selectAll('img.image-icon')
.data(imageURL ? [0] : []);
imageIcon.exit()
.remove();
imageIcon = imageIcon.enter()
.append('img')
.attr('class', 'image-icon')
.on('load', function() {
container.classed('showing-img', true);
})
.on('error', function() {
container.classed('showing-img', false);
})
.merge(imageIcon);
imageIcon
.attr('src', imageURL);
}