diff --git a/src/ui/feed/note/content.rs b/src/ui/feed/note/content.rs index 142d5c18..7e46e2a2 100644 --- a/src/ui/feed/note/content.rs +++ b/src/ui/feed/note/content.rs @@ -67,9 +67,11 @@ pub(super) fn render_content( if *i == num { // FIXME is there a way to consume just this entry in cached_mentions so // we can avoid the clone? - if let Some(note_data) = - super::NoteData::new(event.clone(), true) - { + if let Some(note_data) = super::NoteData::new( + event.clone(), + true, + app.settings.show_long_form, + ) { append_repost = Some(note_data); render_link = false; } diff --git a/src/ui/feed/note/mod.rs b/src/ui/feed/note/mod.rs index f3d093bc..1f7c7004 100644 --- a/src/ui/feed/note/mod.rs +++ b/src/ui/feed/note/mod.rs @@ -51,7 +51,7 @@ pub(super) struct NoteData { } impl NoteData { - pub fn new(event: Event, with_inline_mentions: bool) -> Option { + pub fn new(event: Event, with_inline_mentions: bool, show_long_form: bool) -> Option { // We do not filter event kinds here anymore. The feed already does that. // There is no sense in duplicating that work. @@ -88,6 +88,12 @@ impl NoteData { if event.kind == EventKind::Repost && serde_json::from_str::(&event.content).is_ok() { + if !show_long_form { + let inner = serde_json::from_str::(&event.content).unwrap(); + if inner.kind == EventKind::LongFormContent { + return None; + } + } Some(RepostType::Kind6Embedded) } else if content_trim == "#[0]" || content_trim.is_empty() { if !cached_mentions.is_empty() { @@ -201,7 +207,11 @@ pub(super) fn render_note( } let event = maybe_event.unwrap(); - match NoteData::new(event, app.settings.show_first_mention) { + match NoteData::new( + event, + app.settings.show_first_mention, + app.settings.show_long_form, + ) { Some(nd) => nd, None => return, } @@ -585,7 +595,9 @@ fn render_note_inner( } } else if event.kind == EventKind::Repost { if let Ok(inner_event) = serde_json::from_str::(&event.content) { - if let Some(inner_note_data) = NoteData::new(inner_event, false) { + if let Some(inner_note_data) = + NoteData::new(inner_event, false, app.settings.show_long_form) + { append_repost = Some(inner_note_data); } else { ui.label("REPOSTED EVENT IS NOT RELEVANT");