From 0c8edbca7e07de4acd06a75645a310bd4ea04173 Mon Sep 17 00:00:00 2001 From: Seyi Adebajo Date: Tue, 18 Sep 2018 11:35:59 -0700 Subject: [PATCH] replaces avatar-image with e-concurrency task --- .../app/components/avatars/avatar-image.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wherehows-web/app/components/avatars/avatar-image.ts b/wherehows-web/app/components/avatars/avatar-image.ts index 1eafc0e8fd..f6cac81ace 100644 --- a/wherehows-web/app/components/avatars/avatar-image.ts +++ b/wherehows-web/app/components/avatars/avatar-image.ts @@ -2,8 +2,10 @@ import Component from '@ember/component'; import ComputedProperty from '@ember/object/computed'; import { IAvatar } from 'wherehows-web/typings/app/avatars'; import { alias } from '@ember-decorators/object/computed'; -import { set } from '@ember/object'; +import { set, get } from '@ember/object'; import { classNames, tagName, attribute } from '@ember-decorators/component'; +import { task } from 'ember-concurrency'; +import { run } from '@ember/runloop'; @tagName('img') @classNames('avatar') @@ -37,16 +39,15 @@ export default class AvatarImage extends Component { @attribute onerror = (): void => { // Change avatar if an error occurs when the image is loaded - this.onImageFallback(); + run(() => get(this, 'onImageFallback').perform()); }; /** - * Sets the fallback image for an avatar + * Task to set the fallback image for an avatar + * @type Task TaskInstance> * @memberof AvatarImage */ - onImageFallback(): void { - if (!this.isDestroyed) { - set(this, 'src', this.avatar.imageUrlFallback); - } - } + onImageFallback = task(function*(this: AvatarImage): IterableIterator { + set(this, 'src', this.avatar.imageUrlFallback); + }); }