From 7b1bdfda5afbc43d512905b7ccc3065fb41eb39a Mon Sep 17 00:00:00 2001 From: bastien ollier Date: Mon, 17 Jun 2024 15:21:00 +0200 Subject: [PATCH] update interface detail recipe --- src/app/recipe-add/recipe-add.component.html | 41 +++++++++++++------- src/app/recipe-add/recipe-add.component.ts | 15 ++++--- src/app/recipe.service.ts | 20 +++++++++- src/app/recipe/recipe.component.html | 41 ++++++++++++++++++-- src/app/recipe/recipe.component.ts | 3 +- 5 files changed, 93 insertions(+), 27 deletions(-) diff --git a/src/app/recipe-add/recipe-add.component.html b/src/app/recipe-add/recipe-add.component.html index 9123e3d..a85fe13 100644 --- a/src/app/recipe-add/recipe-add.component.html +++ b/src/app/recipe-add/recipe-add.component.html @@ -1,24 +1,35 @@
- - + + + +
- - + + + +
- -
    - @for (ingredient of ingredientEntries; track ingredient.idIngredient) { -
  • #{{ ingredient.idIngredient }}
  • - } -
- + + +
    + @for (ingredient of ingredientEntries; track ingredient.idIngredient) { +
  • #{{ ingredient.idIngredient }} + +
  • + } +
+
+ + + +
diff --git a/src/app/recipe-add/recipe-add.component.ts b/src/app/recipe-add/recipe-add.component.ts index 4e39fb8..47c391a 100644 --- a/src/app/recipe-add/recipe-add.component.ts +++ b/src/app/recipe-add/recipe-add.component.ts @@ -3,11 +3,14 @@ import { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from '@angu import { Router } from '@angular/router'; import { Ingredient, IngredientEntry, Recipe } from '../../cookbook/type'; import { RecipeService } from '../recipe.service'; +import {MatSelectModule} from '@angular/material/select'; +import {MatInputModule} from '@angular/material/input'; +import {MatFormFieldModule} from '@angular/material/form-field'; @Component({ selector: 'app-recipe-add', standalone: true, - imports: [ReactiveFormsModule, FormsModule], + imports: [ReactiveFormsModule, FormsModule,MatFormFieldModule, MatInputModule, MatSelectModule], templateUrl: './recipe-add.component.html', }) export class RecipeAddComponent { @@ -18,10 +21,7 @@ export class RecipeAddComponent { }); ingredientEntries: IngredientEntry[] = []; - ingredients: Ingredient[] = [{ - id: 1, - name: 'Paprika', - }]; + ingredients: Ingredient[] = []; #recipeId: number = -1; @Input() @@ -39,7 +39,10 @@ export class RecipeAddComponent { }); } - constructor(private formBuilder: FormBuilder, private recipes: RecipeService, private router: Router) {} + constructor(private formBuilder: FormBuilder, private recipes: RecipeService, private router: Router) { + this.ingredients = this.recipes.getAllIngredients(); + console.log(this.ingredients); + } onSubmit(): void { if (this.createForm.invalid) { diff --git a/src/app/recipe.service.ts b/src/app/recipe.service.ts index 3a0bdd9..4b40f6a 100644 --- a/src/app/recipe.service.ts +++ b/src/app/recipe.service.ts @@ -1,12 +1,15 @@ import { Injectable } from '@angular/core'; -import { Recipe } from '../cookbook/type'; +import { Ingredient, Recipe } from '../cookbook/type'; @Injectable({ providedIn: 'root', }) export class RecipeService { #recipes: Recipe[] = [ - { id: 0, name: 'crepe1', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] }, + { id: 0, name: 'crepe1', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [ + {idIngredient:1,idRecipe:0,quantity:10}, + {idIngredient:2,idRecipe:0,quantity:15} + ] }, { id: 1, name: 'crepe2', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] }, { id: 2, name: 'crepe3', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] }, { id: 3, name: 'crepe4', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] }, @@ -22,14 +25,27 @@ export class RecipeService { { id: 13, name: 'crepe14', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] }, ]; + #ingredients: Ingredient[] = [ + { id:1, name:'Sucre'}, + { id:2, name:'Farine'} + ] + getAll(): Recipe[] { return this.#recipes; } + getAllIngredients(): Ingredient[] { + return this.#ingredients; + } + get(id: number): Recipe | null { return this.#recipes.find((recipe) => recipe.id === id) || null; } + getIngredientById(id: number): Ingredient | null { + return this.#ingredients.find((ingredient) => ingredient.id === id) || null; + } + add(recipe: Omit): void { const id = this.#recipes.length ? Math.max(...this.#recipes.map((recipe) => recipe.id)) + 1 : 1; this.#recipes.push({ diff --git a/src/app/recipe/recipe.component.html b/src/app/recipe/recipe.component.html index 73c1a8d..45bad88 100644 --- a/src/app/recipe/recipe.component.html +++ b/src/app/recipe/recipe.component.html @@ -1,4 +1,39 @@ -

{{recipe.id}}

-

{{recipe.name}}

-

{{recipe.description}}

+ + +
+ {{recipe.name}}/ + +
+ +

{{recipe.name}}

+

+ {{recipe.description}} +

+ +

Ingredients

+

+

  • + {{ this.recipes.getIngredientById(ingredient.idIngredient)?.name }}: {{ ingredient.quantity }}g +
  • +

    + +
    +
    + + diff --git a/src/app/recipe/recipe.component.ts b/src/app/recipe/recipe.component.ts index 51c8101..d93933c 100644 --- a/src/app/recipe/recipe.component.ts +++ b/src/app/recipe/recipe.component.ts @@ -1,11 +1,12 @@ import { Component, Input } from '@angular/core'; +import { CommonModule } from '@angular/common'; import { Recipe } from '../../cookbook/type'; import { RecipeService } from '../recipe.service'; @Component({ selector: 'app-recipe', standalone: true, - imports: [], + imports: [CommonModule], templateUrl: './recipe.component.html', }) export class RecipeComponent {