Fix iD using invalid user selected imagery

This commit is contained in:
Renan
2022-04-15 00:38:33 -03:00
committed by Martin Raifer
parent fc77a56942
commit 1313e4b21e
2 changed files with 25 additions and 7 deletions
+8
View File
@@ -41,6 +41,7 @@ _Breaking developer changes, which may affect downstream projects or sites that
# Unreleased
#### :newspaper: News
<<<<<<< HEAD
#### :tada: New Features
* Consider lifecycle prefixes when deciding whether features should be rendered as a line or an area ([#8881], thanks [@k-yle])
#### :white_check_mark: Validation
@@ -102,6 +103,9 @@ _Breaking developer changes, which may affect downstream projects or sites that
##### 2022-Jun-03
#### :newspaper: News
=======
>>>>>>> Fix iD using invalid user selected imagery
* Drop legacy support for Internet Explorer 11 ([#8811])
* Use OAuth2 for authentication with OSM API ([#9134], thanks [@bhousel] and [@dakotabenjamin])
#### :white_check_mark: Validation
@@ -111,8 +115,12 @@ _Breaking developer changes, which may affect downstream projects or sites that
* Fix KeepRight warnings showing up as "Unknown" issues ([#8925])
* Fix <kbd>⌥</kbd><kbd>W</kbd> keyboard shortcut not working on MacOS in certain system languages / keyboard layouts (e.g. Spanish) ([#8905])
* Render closed ways tagged as `public_transport=platform`, `waterway=dam` or `highway=elevator` as areas ([#8985])
<<<<<<< HEAD
* Fix a bug which caused validations to not take effect in certain situations ([#9021], thanks [@mbrzakovic])
* Properly escape currently logged-in user's user name ([#9097], thanks [@jleedev])
=======
* Fix iD using invalid user selected imagery ([#8732])
>>>>>>> Fix iD using invalid user selected imagery
#### :rocket: Presets
* Optimize order of values in dropdowns of `access` fields ([#8945])
* Use value of `vehicle` tag as placeholder value of `access` fields for `motor_vehicle` and `bicycle`
+17 -7
View File
@@ -459,11 +459,13 @@ export function rendererBackground(context) {
return _loadPromise = ensureImageryIndex()
.then(imageryIndex => {
const first = imageryIndex.backgrounds.length && imageryIndex.backgrounds[0];
const validBackgrounds = background.sources(extent);
const first = validBackgrounds.length && validBackgrounds[0];
const isRequestedValid = !!validBackgrounds.find(d => d.id && d.id === requested);
let best;
if (!requested && extent) {
best = background.sources(extent).find(s => s.best());
if (!isRequestedValid || (!requested && extent)) {
best = validBackgrounds.find(s => s.best());
}
// Decide which background layer to display
@@ -473,14 +475,22 @@ export function rendererBackground(context) {
background.baseLayerSource(custom.template(template));
prefs('background-custom-template', template);
} else {
background.baseLayerSource(
background.findSource(requested) ||
best ||
background.findSource(prefs('background-last-used')) ||
const defaultSource = (
background.findSource('Bing') ||
first ||
background.findSource('none')
);
if (!isRequestedValid) {
background.baseLayerSource(best || defaultSource);
} else {
background.baseLayerSource(
background.findSource(requested) ||
best ||
background.findSource(prefs('background-last-used')) ||
defaultSource
);
}
}
const locator = imageryIndex.backgrounds.find(d => d.overlay && d.default);