note: support nprofile mentions

realized we were missing this bit

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2024-04-24 08:53:21 -07:00
parent 32923abfc2
commit 61deeb03e1

View File

@@ -97,6 +97,29 @@ fn render_note_preview(
.response
}
fn mention_ui(app: &mut Damus, txn: &Transaction, pk: &[u8; 32], ui: &mut egui::Ui) {
#[cfg(feature = "profiling")]
puffin::profile_function!();
let profile = app.ndb.get_profile_by_pubkey(txn, pk).ok();
let name: String =
if let Some(name) = profile.as_ref().and_then(crate::profile::get_profile_name) {
format!("@{}", name.username())
} else {
"??".to_string()
};
let resp = ui.colored_label(colors::PURPLE, &name);
if let Some(rec) = profile.as_ref() {
resp.on_hover_ui_at_pointer(|ui| {
ui.set_max_width(300.0);
ui.add(ui::ProfilePreview::new(rec, &mut app.img_cache));
});
}
}
fn render_note_contents(
ui: &mut egui::Ui,
damus: &mut Damus,
@@ -125,30 +148,12 @@ fn render_note_contents(
for block in blocks.iter(note) {
match block.blocktype() {
BlockType::MentionBech32 => match block.as_mention().unwrap() {
Mention::Profile(profile) => {
mention_ui(damus, txn, profile.pubkey(), ui);
}
Mention::Pubkey(npub) => {
#[cfg(feature = "profiling")]
puffin::profile_scope!("pubkey contents");
ui.horizontal(|ui| {
let profile = damus.ndb.get_profile_by_pubkey(txn, npub.pubkey()).ok();
let name: String = if let Some(name) =
profile.as_ref().and_then(crate::profile::get_profile_name)
{
format!("@{}", name.username())
} else {
"??".to_string()
};
let resp = ui.colored_label(colors::PURPLE, &name);
if let Some(rec) = profile.as_ref() {
resp.on_hover_ui_at_pointer(|ui| {
ui.set_max_width(300.0);
ui.add(ui::ProfilePreview::new(rec, &mut damus.img_cache));
});
}
});
mention_ui(damus, txn, npub.pubkey(), ui);
}
Mention::Note(note) if options.has_note_previews() => {