ilios/frontend

View on GitHub
packages/frontend/app/components/program-year/managed-competency-list-item.js

Summary

Maintainability
A
0 mins
Test Coverage
import Component from '@glimmer/component';
import { cached } from '@glimmer/tracking';
import { TrackedAsyncData } from 'ember-async-data';
import { task } from 'ember-concurrency';

export default class ProgramYearManagedCompetencyListItemComponent extends Component {
  @cached
  get childrenData() {
    return new TrackedAsyncData(this.args.domain.children);
  }

  get children() {
    return this.childrenData.isResolved ? this.childrenData.value : [];
  }

  addCompetencyToBuffer = task(async (competency) => {
    const children = (await competency.children).slice();
    this.args.addCompetencyToBuffer(competency, children);
  });

  removeCompetencyFromBuffer = task(async (competency) => {
    const children = (await competency.children).slice();
    this.args.removeCompetencyFromBuffer(competency, children);
  });
}