piceaTech/ember-rapid-forms

View on GitHub
addon/mixins/in-form.js

Summary

Maintainability
A
0 mins
Test Coverage
import { computed } from '@ember/object';
import { assert } from '@ember/debug';
import Mixin from '@ember/object/mixin';

/*
Find the form of the component that merges this mixin
 */
export default Mixin.create({
  formFromPartentView: computed({
    get() {
      let parentView = this.get('parentView');

      while (parentView) {
        if (parentView.get('tagName') === 'form') {
          return parentView;
        }
        parentView = parentView.get('parentView');
      }

      return assert('Cannot find form');
    }
  }),
  model: computed('form', 'form.model', {
    get() {
      return this.get('form.model');
    }
  })
});