forked from Kieran/snort
ignore moderation when viewing profile
This commit is contained in:
parent
ddec154fcb
commit
5e0b36f165
@ -19,6 +19,7 @@ export interface NoteProps {
|
|||||||
isThread?: boolean,
|
isThread?: boolean,
|
||||||
related: TaggedRawEvent[],
|
related: TaggedRawEvent[],
|
||||||
highlight?: boolean,
|
highlight?: boolean,
|
||||||
|
ignoreModeration?: boolean,
|
||||||
options?: {
|
options?: {
|
||||||
showHeader?: boolean,
|
showHeader?: boolean,
|
||||||
showTime?: boolean,
|
showTime?: boolean,
|
||||||
@ -46,7 +47,7 @@ const HiddenNote = ({ children }: any) => {
|
|||||||
|
|
||||||
export default function Note(props: NoteProps) {
|
export default function Note(props: NoteProps) {
|
||||||
const navigate = useNavigate();
|
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 ev = useMemo(() => parsedEvent ?? new NEvent(data), [data]);
|
||||||
const pubKeys = useMemo(() => ev.Thread?.PubKeys || [], [ev]);
|
const pubKeys = useMemo(() => ev.Thread?.PubKeys || [], [ev]);
|
||||||
const users = useProfile(pubKeys);
|
const users = useProfile(pubKeys);
|
||||||
@ -176,5 +177,5 @@ export default function Note(props: NoteProps) {
|
|||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
||||||
return isOpMuted ? <HiddenNote>{note}</HiddenNote> : note
|
return !ignoreModeration && isOpMuted ? <HiddenNote>{note}</HiddenNote> : note
|
||||||
}
|
}
|
||||||
|
@ -15,19 +15,20 @@ export interface TimelineProps {
|
|||||||
postsOnly: boolean,
|
postsOnly: boolean,
|
||||||
subject: TimelineSubject,
|
subject: TimelineSubject,
|
||||||
method: "TIME_RANGE" | "LIMIT_UNTIL"
|
method: "TIME_RANGE" | "LIMIT_UNTIL"
|
||||||
|
ignoreModeration?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list of notes by pubkeys
|
* 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 { muted, isMuted } = useModeration();
|
||||||
const { main, related, latest, parent, loadMore, showLatest } = useTimelineFeed(subject, {
|
const { main, related, latest, parent, loadMore, showLatest } = useTimelineFeed(subject, {
|
||||||
method
|
method
|
||||||
});
|
});
|
||||||
|
|
||||||
const filterPosts = useCallback((nts: TaggedRawEvent[]) => {
|
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]);
|
}, [postsOnly, muted]);
|
||||||
|
|
||||||
const mainFeed = useMemo(() => {
|
const mainFeed = useMemo(() => {
|
||||||
@ -41,7 +42,7 @@ export default function Timeline({ subject, postsOnly = false, method }: Timelin
|
|||||||
function eventElement(e: TaggedRawEvent) {
|
function eventElement(e: TaggedRawEvent) {
|
||||||
switch (e.kind) {
|
switch (e.kind) {
|
||||||
case EventKind.TextNote: {
|
case EventKind.TextNote: {
|
||||||
return <Note key={e.id} data={e} related={related.notes} />
|
return <Note key={e.id} data={e} related={related.notes} ignoreModeration={ignoreModeration} />
|
||||||
}
|
}
|
||||||
case EventKind.Reaction:
|
case EventKind.Reaction:
|
||||||
case EventKind.Repost: {
|
case EventKind.Repost: {
|
||||||
|
@ -108,7 +108,7 @@ export default function ProfilePage() {
|
|||||||
function tabContent() {
|
function tabContent() {
|
||||||
switch (tab) {
|
switch (tab) {
|
||||||
case ProfileTab.Notes:
|
case ProfileTab.Notes:
|
||||||
return <Timeline key={id} subject={{ type: "pubkey", items: [id] }} postsOnly={false} method={"LIMIT_UNTIL"} />;
|
return <Timeline key={id} subject={{ type: "pubkey", items: [id] }} postsOnly={false} method={"LIMIT_UNTIL"} ignoreModeration={true} />;
|
||||||
case ProfileTab.Follows: {
|
case ProfileTab.Follows: {
|
||||||
if (isMe) {
|
if (isMe) {
|
||||||
return (
|
return (
|
||||||
|
Loading…
Reference in New Issue
Block a user