From 11a0da31ff8ae5f36bb78a12f586cca2e1e01e2e Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Tue, 26 Sep 2023 13:47:53 -0500 Subject: [PATCH] handle muting repost events dont show mute events on image view --- .../timeline-page/generic-note-timeline/repost-note.tsx | 5 ++++- src/components/timeline-page/media-timeline/index.tsx | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/timeline-page/generic-note-timeline/repost-note.tsx b/src/components/timeline-page/generic-note-timeline/repost-note.tsx index 3a7367d4a..858b3b8b8 100644 --- a/src/components/timeline-page/generic-note-timeline/repost-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/repost-note.tsx @@ -14,6 +14,7 @@ import { useReadRelayUrls } from "../../../hooks/use-client-relays"; import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; import useSingleEvent from "../../../hooks/use-single-event"; import { EmbedEvent } from "../../embed-event"; +import useUserMuteFilter from "../../../hooks/use-user-mute-filter"; function parseHardcodedNoteContent(event: NostrEvent) { const json = safeJson(event.content, null); @@ -31,15 +32,17 @@ export default function RepostNote({ event }: { event: NostrEvent }) { const ref = useRef(null); useRegisterIntersectionEntity(ref, event.id); + const muteFilter = useUserMuteFilter(); const hardCodedNote = parseHardcodedNoteContent(event); const [_, eventId, relay] = event.tags.find(isETag) ?? []; const readRelays = useReadRelayUrls(relay ? [relay] : []); const loadedNote = useSingleEvent(eventId, readRelays); - const note = hardCodedNote || loadedNote; + if (note && muteFilter(note)) return; + return ( diff --git a/src/components/timeline-page/media-timeline/index.tsx b/src/components/timeline-page/media-timeline/index.tsx index e7efcd9fa..1f478b4e1 100644 --- a/src/components/timeline-page/media-timeline/index.tsx +++ b/src/components/timeline-page/media-timeline/index.tsx @@ -13,6 +13,7 @@ import { useRegisterIntersectionEntity } from "../../../providers/intersection-o import { Photo } from "react-photo-album"; import { NostrEvent } from "../../../types/nostr-event"; import { getEventUID } from "../../../helpers/nostr/events"; +import { Kind } from "nostr-tools"; function GalleryImage({ event, ...props }: EmbeddedImageProps & { event: NostrEvent }) { const ref = useRef(null); @@ -42,6 +43,7 @@ export default function MediaTimeline({ timeline }: { timeline: TimelineLoader } var images: PhotoWithEvent[] = []; for (const event of events) { + if (event.kind === Kind.Repost) continue; const urls = event.content.matchAll(getMatchLink()); let i = 0;