diff --git a/damus/Views/Timeline/InnerTimelineView.swift b/damus/Views/Timeline/InnerTimelineView.swift index 4212f3dc..0e572f8f 100644 --- a/damus/Views/Timeline/InnerTimelineView.swift +++ b/damus/Views/Timeline/InnerTimelineView.swift @@ -13,10 +13,10 @@ struct InnerTimelineView: View { let state: DamusState let filter: (NostrEvent) -> Bool - init(events: EventHolder, damus: DamusState, filter: @escaping (NostrEvent) -> Bool) { + init(events: EventHolder, damus: DamusState, filter: @escaping (NostrEvent) -> Bool, apply_mute_rules: Bool = true) { self.events = events self.state = damus - self.filter = filter + self.filter = apply_mute_rules ? { filter($0) && !damus.mutelist_manager.is_event_muted($0) } : filter } var event_options: EventViewOptions { diff --git a/damus/Views/TimelineView.swift b/damus/Views/TimelineView.swift index 6a88e6fb..f08fcd87 100644 --- a/damus/Views/TimelineView.swift +++ b/damus/Views/TimelineView.swift @@ -16,13 +16,15 @@ struct TimelineView: View { let filter: (NostrEvent) -> Bool let content: Content? let debouncer: Debouncer + let apply_mute_rules: Bool - init(events: EventHolder, loading: Binding, damus: DamusState, show_friend_icon: Bool, filter: @escaping (NostrEvent) -> Bool, content: (() -> Content)? = nil) { + init(events: EventHolder, loading: Binding, damus: DamusState, show_friend_icon: Bool, filter: @escaping (NostrEvent) -> Bool, apply_mute_rules: Bool = true, content: (() -> Content)? = nil) { self.events = events self._loading = loading self.damus = damus self.show_friend_icon = show_friend_icon self.filter = filter + self.apply_mute_rules = apply_mute_rules self.debouncer = Debouncer(interval: 0.5) self.content = content?() } @@ -42,7 +44,7 @@ struct TimelineView: View { .id("startblock") .frame(height: 1) - InnerTimelineView(events: events, damus: damus, filter: loading ? { _ in true } : filter) + InnerTimelineView(events: events, damus: damus, filter: loading ? { _ in true } : filter, apply_mute_rules: self.apply_mute_rules) .redacted(reason: loading ? .placeholder : []) .shimmer(loading) .disabled(loading)