mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-23 11:35:04 +01:00
Add and remove opposing event listeners
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
This commit is contained in:
parent
5f1346568d
commit
8b6ff533e8
@ -44,7 +44,7 @@ export class AvatarView extends BaseUpdateView {
|
||||
return false;
|
||||
}
|
||||
|
||||
setAvatarError() {
|
||||
_setAvatarError() {
|
||||
this._avatarError = true;
|
||||
this.update(this.value);
|
||||
}
|
||||
@ -57,6 +57,20 @@ export class AvatarView extends BaseUpdateView {
|
||||
return false;
|
||||
}
|
||||
|
||||
_addListenersToAvatar(image) {
|
||||
const handleAvatarError = (e) => {
|
||||
const image = e.target;
|
||||
image.removeEventListener("load", removeErrorHandler);
|
||||
this._setAvatarError();
|
||||
};
|
||||
const removeErrorHandler = (e) => {
|
||||
const image = e.target;
|
||||
image.removeEventListener("error", handleAvatarError);
|
||||
};
|
||||
image?.addEventListener("error", handleAvatarError);
|
||||
image?.addEventListener("load", removeErrorHandler);
|
||||
}
|
||||
|
||||
_avatarLetterChanged() {
|
||||
if (this.value.avatarLetter !== this._avatarLetter) {
|
||||
this._avatarLetter = this.value.avatarLetter;
|
||||
@ -71,7 +85,7 @@ export class AvatarView extends BaseUpdateView {
|
||||
this._avatarTitleChanged();
|
||||
this._root = renderStaticAvatar(this.value, this._size);
|
||||
const image = this._root.firstChild;
|
||||
image?.addEventListener("error", () => this.setAvatarError());
|
||||
this._addListenersToAvatar(image);
|
||||
// takes care of update being called when needed
|
||||
super.mount(options);
|
||||
return this._root;
|
||||
|
Loading…
Reference in New Issue
Block a user