web: preserve checked boxes on search refresh

This commit is contained in:
Bill Thiede 2024-08-18 11:04:31 -07:00
parent 5279578c64
commit ac0ce29c76

View File

@ -291,12 +291,29 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
})
.collect(),
);
info!("pager {:#?}", data.search.page_info);
let selected_threads = 'context: {
if let Context::SearchResult {
results,
selected_threads,
..
} = &model.context
{
let old: HashSet<_> = results.iter().map(|n| &n.thread).collect();
let new: HashSet<_> = data.search.nodes.iter().map(|n| &n.thread).collect();
if old == new {
break 'context selected_threads.clone();
}
}
HashSet::new()
};
model.context = Context::SearchResult {
query: model.query.clone(),
results: data.search.nodes,
count: data.count as usize,
pager: data.search.page_info,
selected_threads: HashSet::new(),
selected_threads,
};
}