From 7540ee473af832b15b435a983028f12bd56dd21b Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Fri, 13 Jan 2023 20:15:52 -0300 Subject: [PATCH] do not add unnecessary tags when mentioning people. --- src/ui/feed.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/ui/feed.rs b/src/ui/feed.rs index ade6f8ea..70b08dd3 100644 --- a/src/ui/feed.rs +++ b/src/ui/feed.rs @@ -183,13 +183,22 @@ fn real_posting_area(app: &mut GossipUi, ctx: &Context, frame: &mut eframe::Fram ui.menu_button("@", |ui| { for pair in pairs { if ui.button(pair.0).clicked() { - app.draft_tags.push(Tag::Pubkey { - pubkey: pair.1, - recommended_relay_url: None, // FIXME - petname: None, - }); - app.draft - .push_str(&format!("#[{}]", app.draft_tags.len() - 1)); + let idx = app + .draft_tags + .iter() + .position(|tag| match tag { + Tag::Pubkey { pubkey, .. } if pubkey.0 == *pair.1 => true, + _ => false, + }) + .unwrap_or_else(|| { + app.draft_tags.push(Tag::Pubkey { + pubkey: pair.1, + recommended_relay_url: None, // FIXME + petname: None, + }); + app.draft_tags.len() - 1 + }); + app.draft.push_str(&format!("#[{}]", idx)); app.tag_someone = "".to_owned(); } }