diff --git a/api/src/lib.rs b/api/src/lib.rs index 8958dd7..bab7f5c 100644 --- a/api/src/lib.rs +++ b/api/src/lib.rs @@ -89,7 +89,7 @@ pub struct CreateRecipeRequest { pub name: String, pub rating: u8, pub ingredients: Vec<(i64, f64)>, - pub steps: Vec, + pub steps: String, } #[derive(Serialize, Deserialize, Clone, Debug)] @@ -105,7 +105,7 @@ pub struct ListRecipesResponse { #[derive(Serialize, Deserialize, Clone, Debug)] pub struct RecipeInfo { pub name: String, - pub steps: Vec, + pub steps: String, pub ingredients: Vec<(i64, IngredientInfo, f64)>, } diff --git a/app/src/recipe.rs b/app/src/recipe.rs index e828a76..c72d5e1 100644 --- a/app/src/recipe.rs +++ b/app/src/recipe.rs @@ -421,7 +421,7 @@ fn AddIngredientInner(props: &AddIngredientProps) -> HtmlResult { } Err(e) => { err.set(Some(format!("Could not add ingredient: {e}"))); - }, + } } }); } @@ -612,8 +612,8 @@ fn RecipeViewerInner(props: &RecipeViewerInnerProps) -> HtmlResult { }})} @@ -622,7 +622,7 @@ fn RecipeViewerInner(props: &RecipeViewerInnerProps) -> HtmlResult {

{"Steps"}

    - {for r.steps.iter().map(|text| html!{ + {for r.steps.split('\n').map(|text| html!{
  • {text}
  • })}
diff --git a/app/src/recipe_creator.rs b/app/src/recipe_creator.rs index fffbdad..fef8124 100644 --- a/app/src/recipe_creator.rs +++ b/app/src/recipe_creator.rs @@ -290,26 +290,9 @@ pub fn RecipeCreator() -> Html { }) }; - let steps = use_state(im::Vector::new); - - let s = steps.clone(); - let on_add_step = Callback::from(move |_| { - let mut steps = (*s).clone(); - steps.push_back(String::new()); - s.set(steps); - }); - - let mk_step_del = |idx| { - let s = steps.clone(); - Callback::from(move |_| { - let mut steps = (*s).clone(); - steps.remove(idx); - s.set(steps); - }) - }; - - let mk_step_change = |idx| { - let s = steps.clone(); + let steps = use_state(String::new); + let on_step_change = { + let steps = steps.clone(); Callback::from(move |e: Event| { let Some(target) = e.target() else { return; @@ -319,9 +302,7 @@ pub fn RecipeCreator() -> Html { return; }; - let mut steps = (*s).clone(); - steps[idx] = target.value(); - s.set(steps); + steps.set(target.value()); }) }; @@ -376,7 +357,7 @@ pub fn RecipeCreator() -> Html { .iter() .map(|rcp_ig: &RecipeIngredient| (rcp_ig.id, rcp_ig.amount / (*pc) as f64)) .collect(), - steps: (*s).iter().cloned().collect(), + steps: (*s).clone(), }, ) .await @@ -519,27 +500,11 @@ pub fn RecipeCreator() -> Html {

{"Steps"}

-
    - {for (*steps).iter().enumerate().map(|(idx, step)| { - html!{ -
  • -