fix(items_list): improve item update logic and add logging for better traceability
This commit is contained in:
parent
11add580e4
commit
764cb262fe
1 changed files with 10 additions and 3 deletions
|
@ -896,24 +896,29 @@ pub fn ItemsList(
|
||||||
let property_labels_clone = property_labels.clone();
|
let property_labels_clone = property_labels.clone();
|
||||||
let current_url_clone = Rc::clone(¤t_url_clone);
|
let current_url_clone = Rc::clone(¤t_url_clone);
|
||||||
let selected_properties_clone = selected_properties.clone();
|
let selected_properties_clone = selected_properties.clone();
|
||||||
let items_len = items.len();
|
|
||||||
let item_id = item.id.clone();
|
let item_id = item.id.clone();
|
||||||
let current_index = index;
|
let current_index = index;
|
||||||
|
|
||||||
move |suggestion: WikidataSuggestion| {
|
move |suggestion: WikidataSuggestion| {
|
||||||
let wikidata_id = suggestion.id.clone();
|
let wikidata_id = suggestion.id.clone();
|
||||||
|
log!("on_select called for item_id={}, index={}", item_id, current_index);
|
||||||
|
|
||||||
// Update the current item with the selected suggestion
|
// Update the current item with the selected suggestion
|
||||||
set_items_clone.update(|items| {
|
set_items_clone.update(|items| {
|
||||||
|
log!("Items before update: {:?}", items.iter().map(|i| &i.id).collect::<Vec<_>>());
|
||||||
// Use the index directly to ensure we're updating the right item
|
// Use the index directly to ensure we're updating the right item
|
||||||
if let Some(item) = items.get_mut(current_index) {
|
if let Some(item) = items.iter_mut().find(|item| item.id == item_id) {
|
||||||
// Double-check the ID matches to ensure we're updating the right item
|
log!("Updating item with id={}", item.id);
|
||||||
|
// Double-check the ID matches to ensure we're updating the rlog!("Creating new item with id={}", new_item.id);ight item
|
||||||
if item.id == item_id {
|
if item.id == item_id {
|
||||||
item.name = suggestion.display.label.value.clone();
|
item.name = suggestion.display.label.value.clone();
|
||||||
item.description = suggestion.display.description.value.clone();
|
item.description = suggestion.display.description.value.clone();
|
||||||
item.wikidata_id = Some(wikidata_id.clone());
|
item.wikidata_id = Some(wikidata_id.clone());
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log!("No item found with id={}", item_id);
|
||||||
}
|
}
|
||||||
|
log!("Items after update: {:?}", items.iter().map(|i| &i.id).collect::<Vec<_>>());
|
||||||
});
|
});
|
||||||
|
|
||||||
// Check if this is the last item using current state
|
// Check if this is the last item using current state
|
||||||
|
@ -959,6 +964,8 @@ pub fn ItemsList(
|
||||||
custom_properties: HashMap::new(),
|
custom_properties: HashMap::new(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
log!("Creating new item with id={}", new_item.id);
|
||||||
|
|
||||||
// Clone for database save
|
// Clone for database save
|
||||||
let new_item_clone = new_item.clone();
|
let new_item_clone = new_item.clone();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue