diff --git a/src/Element/Note.tsx b/src/Element/Note.tsx index e6ff52eb..f31d658e 100644 --- a/src/Element/Note.tsx +++ b/src/Element/Note.tsx @@ -19,6 +19,7 @@ export interface NoteProps { isThread?: boolean, related: TaggedRawEvent[], highlight?: boolean, + ignoreModeration?: boolean, options?: { showHeader?: boolean, showTime?: boolean, @@ -46,7 +47,7 @@ const HiddenNote = ({ children }: any) => { export default function Note(props: NoteProps) { const navigate = useNavigate(); - const { data, isThread, related, highlight, options: opt, ["data-ev"]: parsedEvent } = props + const { data, isThread, related, highlight, options: opt, ["data-ev"]: parsedEvent, ignoreModeration = false} = props const ev = useMemo(() => parsedEvent ?? new NEvent(data), [data]); const pubKeys = useMemo(() => ev.Thread?.PubKeys || [], [ev]); const users = useProfile(pubKeys); @@ -176,5 +177,5 @@ export default function Note(props: NoteProps) { ) - return isOpMuted ? {note} : note + return !ignoreModeration && isOpMuted ? {note} : note } diff --git a/src/Element/Timeline.tsx b/src/Element/Timeline.tsx index abf5ba56..0324309f 100644 --- a/src/Element/Timeline.tsx +++ b/src/Element/Timeline.tsx @@ -15,19 +15,20 @@ export interface TimelineProps { postsOnly: boolean, subject: TimelineSubject, method: "TIME_RANGE" | "LIMIT_UNTIL" + ignoreModeration?: boolean } /** * A list of notes by pubkeys */ -export default function Timeline({ subject, postsOnly = false, method }: TimelineProps) { +export default function Timeline({ subject, postsOnly = false, method, ignoreModeration = false }: TimelineProps) { const { muted, isMuted } = useModeration(); const { main, related, latest, parent, loadMore, showLatest } = useTimelineFeed(subject, { method }); const filterPosts = useCallback((nts: TaggedRawEvent[]) => { - return [...nts].sort((a, b) => b.created_at - a.created_at)?.filter(a => postsOnly ? !a.tags.some(b => b[0] === "e") : true).filter(a => !isMuted(a.pubkey)); + return [...nts].sort((a, b) => b.created_at - a.created_at)?.filter(a => postsOnly ? !a.tags.some(b => b[0] === "e") : true).filter(a => ignoreModeration || !isMuted(a.pubkey)); }, [postsOnly, muted]); const mainFeed = useMemo(() => { @@ -41,7 +42,7 @@ export default function Timeline({ subject, postsOnly = false, method }: Timelin function eventElement(e: TaggedRawEvent) { switch (e.kind) { case EventKind.TextNote: { - return + return } case EventKind.Reaction: case EventKind.Repost: { diff --git a/src/Pages/ProfilePage.tsx b/src/Pages/ProfilePage.tsx index 3724f55a..d86b9be3 100644 --- a/src/Pages/ProfilePage.tsx +++ b/src/Pages/ProfilePage.tsx @@ -108,7 +108,7 @@ export default function ProfilePage() { function tabContent() { switch (tab) { case ProfileTab.Notes: - return ; + return ; case ProfileTab.Follows: { if (isMe) { return (