diff --git a/src/components/items_list.rs b/src/components/items_list.rs index c279b3b..557373a 100644 --- a/src/components/items_list.rs +++ b/src/components/items_list.rs @@ -112,86 +112,99 @@ pub fn ItemsList( }); }; + // List of properties to display as rows + let properties = vec!["Name", "Description", "Tags", "Actions"]; + view! {

{ "Items List" }

- - - - + + {move || items.get().iter().enumerate().map(|(index, _)| { + view! { + + } + }).collect::>()} - {move || items.get().iter().enumerate().map(|(index, item)| { + {properties.into_iter().map(|property| { view! { - // Editable Name Field with Wikidata Integration - + {move || items.get().iter().enumerate().map(|(index, item)| { + view! { + - // Editable Description Field - - // Tag Editor - - // Actions - + view! { +
  • + { format!("{} - {}", label_for_display, description_for_display) } +
  • + } + }).collect::>() + }} + + }.into_view(), + "Description" => view! { + + }.into_view(), + "Tags" => view! { + + }.into_view(), + "Actions" => view! { + + }.into_view(), + _ => view! { + { "" } + }.into_view(), + }} + + } + }).collect::>()} } - }).collect::>()} + }).collect::>()}
    { "Name" }{ "Description" }{ "Tags" }{ "Actions" }{ "Property" }{ format!("Item {}", index + 1) }
    - -
      - {move || { - let suggestions = wikidata_suggestions.get().to_vec(); - suggestions.into_iter().map(|suggestion| { - let label_for_click = suggestion.label.clone(); - let label_for_display = suggestion.label.clone(); - let description_for_click = suggestion.description.clone().unwrap_or_default(); - let description_for_display = suggestion.description.clone().unwrap_or_default(); - let id = suggestion.id.clone(); +
    { property } + {match property { + "Name" => view! { + +
      + {move || { + let suggestions = wikidata_suggestions.get().to_vec(); + suggestions.into_iter().map(|suggestion| { + let label_for_click = suggestion.label.clone(); + let label_for_display = suggestion.label.clone(); + let description_for_click = suggestion.description.clone().unwrap_or_default(); + let description_for_display = suggestion.description.clone().unwrap_or_default(); + let id = suggestion.id.clone(); - // Tags for the item - let tags = vec![ - ("source".to_string(), "wikidata".to_string()), - ("wikidata_id".to_string(), id.clone()), - ]; + // Tags for the item + let tags = vec![ + ("source".to_string(), "wikidata".to_string()), + ("wikidata_id".to_string(), id.clone()), + ]; - view! { -
    • - { format!("{} - {}", label_for_display, description_for_display) } -
    • - } - }).collect::>() - }} -
    -
    - - - - - -