Add hasListener check around dispatchEvent calls

This commit is contained in:
Maximilian Krög
2022-02-09 22:05:18 +01:00
parent d35d1cc8ad
commit ac0b8ff4a4
3 changed files with 20 additions and 16 deletions

View File

@@ -240,27 +240,25 @@ class ImageSource extends Source {
*/
handleImageChange(event) {
const image = /** @type {import("../Image.js").default} */ (event.target);
let type;
switch (image.getState()) {
case ImageState.LOADING:
this.loading = true;
this.dispatchEvent(
new ImageSourceEvent(ImageSourceEventType.IMAGELOADSTART, image)
);
type = ImageSourceEventType.IMAGELOADSTART;
break;
case ImageState.LOADED:
this.loading = false;
this.dispatchEvent(
new ImageSourceEvent(ImageSourceEventType.IMAGELOADEND, image)
);
type = ImageSourceEventType.IMAGELOADEND;
break;
case ImageState.ERROR:
this.loading = false;
this.dispatchEvent(
new ImageSourceEvent(ImageSourceEventType.IMAGELOADERROR, image)
);
type = ImageSourceEventType.IMAGELOADERROR;
break;
default:
// pass
return;
}
if (this.hasListener(type)) {
this.dispatchEvent(new ImageSourceEvent(type, image));
}
}
}