Exelord/ember-initials

View on GitHub
addon/components/gravatar/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import ImageAvatarComponent from '../image';
import { tracked } from '@glimmer/tracking';
import { reads } from '@ember/object/computed';
import md5 from 'blueimp-md5';

class GravatarAvatarComponent extends ImageAvatarComponent {
  @tracked email = '';

  @reads('config.gravatar.defaultImageUrl') defaultImage;

  @tracked _image;

  get image() {
    return this._image || this.generateGravatarUrl();
  }

  set image(value) {
    return this._image = value;
  }

  generateGravatarUrl() {
    const hash = md5(this.email);
    const { size } = this;
    const url = this.defaultImage ? `&default=${new URL(this.defaultImage, window.location.origin).href}` : '';

    return `//www.gravatar.com/avatar/${hash}?size=${size}${url}`;
  }
}

export default GravatarAvatarComponent;