mutes: simplify mutefun and don't render tombstone yet

This commit is contained in:
William Casarin
2025-01-04 16:19:41 -08:00
parent c7d3aae856
commit e08e30f912
3 changed files with 17 additions and 24 deletions

View File

@@ -421,7 +421,7 @@ impl Accounts {
} }
} }
} }
Box::new(|_: &Note, _: &[u8; 32]| None) Box::new(|_: &Note, _: &[u8; 32]| false)
} }
pub fn send_initial_filters(&mut self, pool: &mut RelayPool, relay_url: &str) { pub fn send_initial_filters(&mut self, pool: &mut RelayPool, relay_url: &str) {

View File

@@ -4,7 +4,7 @@ use std::collections::BTreeSet;
use tracing::{debug, trace}; use tracing::{debug, trace};
// If the note is muted return a reason string, otherwise None // If the note is muted return a reason string, otherwise None
pub type MuteFun = dyn Fn(&Note, &[u8; 32]) -> Option<String>; pub type MuteFun = dyn Fn(&Note, &[u8; 32]) -> bool;
#[derive(Default)] #[derive(Default)]
pub struct Muted { pub struct Muted {
@@ -34,7 +34,7 @@ impl std::fmt::Debug for Muted {
impl Muted { impl Muted {
// If the note is muted return a reason string, otherwise None // If the note is muted return a reason string, otherwise None
pub fn is_muted(&self, note: &Note, thread: &[u8; 32]) -> Option<String> { pub fn is_muted(&self, note: &Note, thread: &[u8; 32]) -> bool {
trace!( trace!(
"{}: thread: {}", "{}: thread: {}",
hex::encode(note.id()), hex::encode(note.id()),
@@ -47,7 +47,7 @@ impl Muted {
hex::encode(note.id()), hex::encode(note.id()),
hex::encode(note.pubkey()) hex::encode(note.pubkey())
); );
return Some(format!("pubkey {}", hex::encode(note.pubkey()))); return true;
} }
// FIXME - Implement hashtag muting here // FIXME - Implement hashtag muting here
@@ -69,10 +69,9 @@ impl Muted {
hex::encode(note.id()), hex::encode(note.id()),
hex::encode(thread) hex::encode(thread)
); );
return Some(format!("thread {}", hex::encode(thread))); return true;
} }
// if we get here it's not muted false
None
} }
} }

View File

@@ -7,7 +7,7 @@ use crate::{
ui::note::NoteOptions, ui::note::NoteOptions,
}; };
use egui::containers::scroll_area::ScrollBarVisibility; use egui::containers::scroll_area::ScrollBarVisibility;
use egui::{Color32, Direction, Layout}; use egui::{Direction, Layout};
use egui_tabs::TabColor; use egui_tabs::TabColor;
use nostrdb::{Ndb, Transaction}; use nostrdb::{Ndb, Transaction};
use notedeck::note::root_note_id_from_selected_id; use notedeck::note::root_note_id_from_selected_id;
@@ -286,18 +286,13 @@ impl<'a> TimelineTabView<'a> {
return 0; return 0;
}; };
ui::padding(8.0, ui, |ui| { let muted = is_muted(
if let Some(muted_reason) = is_muted( &note,
&note, root_note_id_from_selected_id(self.ndb, self.note_cache, self.txn, note.id()),
root_note_id_from_selected_id( );
self.ndb,
self.note_cache, if !muted {
self.txn, ui::padding(8.0, ui, |ui| {
note.id(),
),
) {
ui.colored_label(Color32::RED, format!("MUTED {}", muted_reason));
} else {
let resp = let resp =
ui::NoteView::new(self.ndb, self.note_cache, self.img_cache, &note) ui::NoteView::new(self.ndb, self.note_cache, self.img_cache, &note)
.note_options(self.note_options) .note_options(self.note_options)
@@ -310,11 +305,10 @@ impl<'a> TimelineTabView<'a> {
if let Some(context) = resp.context_selection { if let Some(context) = resp.context_selection {
context.process(ui, &note); context.process(ui, &note);
} }
}; });
});
ui::hline(ui); ui::hline(ui);
//ui.add(egui::Separator::default().spacing(0.0)); }
1 1
}); });