35 lines
816 B
JavaScript
35 lines
816 B
JavaScript
import Component from '@glimmer/component';
|
|
import { tracked } from "@glimmer/tracking";
|
|
import { action } from "@ember/object";
|
|
import { A } from '@ember/array';
|
|
import { task } from 'ember-concurrency';
|
|
import { inject as service } from '@ember/service';
|
|
|
|
export default class RecipeListComponent extends Component {
|
|
@service store;
|
|
@tracked items = A([]);
|
|
|
|
constructor() {
|
|
super(...arguments);
|
|
this.assignExistingItems();
|
|
}
|
|
|
|
async assignExistingItems() {
|
|
let items = await this.store.peekAll('meal');
|
|
this.items = items;
|
|
}
|
|
|
|
@(task(function * () {
|
|
return yield this.store.queryRecord('meal', 'random');
|
|
})) fetchRecipe;
|
|
|
|
@action
|
|
reorderItems(reorderedItems) {
|
|
this.items = reorderedItems;
|
|
}
|
|
|
|
@action
|
|
async addRecipe() {
|
|
await this.fetchRecipe.perform();
|
|
}
|
|
}
|