hummingbird-me/kitsu-web

View on GitHub
app/components/users/edit-profile/header.js

Summary

Maintainability
A
55 mins
Test Coverage
F
0%
import Component from '@ember/component';
import { get, set, computed } from '@ember/object';
import { run } from '@ember/runloop';
import { htmlSafe } from '@ember/string';
import { invokeAction } from 'ember-invoke-action';
import { image } from 'client/helpers/image';
import errorMessage from 'client/utils/error-messages';

export default Component.extend({
  tab: 'about-me',

  coverImageStyle: computed('user.coverImage', function() {
    const coverImage = image(get(this, 'user.coverImage'));
    return htmlSafe(`background-image: url("${coverImage}")`);
  }).readOnly(),

  actions: {
    triggerClick(elementId) {
      this.$(`#${elementId}`).click();
    },

    updateImage(property, event) {
      if (event.files && event.files[0]) {
        const reader = new FileReader();
        reader.onload = evt => run(() => {
          set(this, property, evt.target.result);
        });
        reader.onerror = err => {
          invokeAction(this, 'onError', errorMessage(err));
        };
        reader.readAsDataURL(event.files[0]);
      }
    },

    changeTab(tab) {
      set(this, 'tab', tab);
      invokeAction(this, 'onChange', tab);
    }
  }
});