26 lines
699 B
JavaScript
26 lines
699 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';
|
|
|
|
export default class RecipeListComponent extends Component {
|
|
@tracked items = A([]);
|
|
|
|
@(task(function * () {
|
|
let response = yield fetch('https://www.themealdb.com/api/json/v1/1/random.php');
|
|
response = yield response.json();
|
|
return response.meals[0];
|
|
})) fetchRecipe;
|
|
|
|
@action
|
|
reorderItems(reorderedItems) {
|
|
this.items = reorderedItems;
|
|
}
|
|
|
|
@action
|
|
async addRecipe() {
|
|
let recipe = await this.fetchRecipe.perform();
|
|
this.items.pushObject(recipe);
|
|
}
|
|
}
|