From 37bf63e88a2ae2d0a83e07d4380ab0270d6e953c Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Mon, 9 Sep 2024 13:46:32 -0500 Subject: [PATCH] Hide avatars of muted users fixes #227 --- .changeset/empty-hounds-love.md | 5 +++++ src/components/user/user-avatar.tsx | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 .changeset/empty-hounds-love.md diff --git a/.changeset/empty-hounds-love.md b/.changeset/empty-hounds-love.md new file mode 100644 index 000000000..7a0168fef --- /dev/null +++ b/.changeset/empty-hounds-love.md @@ -0,0 +1,5 @@ +--- +"nostrudel": patch +--- + +Hide avatars of muted users diff --git a/src/components/user/user-avatar.tsx b/src/components/user/user-avatar.tsx index d6f00f200..977897dd6 100644 --- a/src/components/user/user-avatar.tsx +++ b/src/components/user/user-avatar.tsx @@ -1,5 +1,5 @@ import { forwardRef, memo, useMemo } from "react"; -import { Avatar, AvatarBadge, AvatarProps } from "@chakra-ui/react"; +import { Avatar, AvatarProps } from "@chakra-ui/react"; import { useAsync } from "react-use"; import useUserMetadata from "../../hooks/use-user-metadata"; @@ -11,8 +11,7 @@ import useCurrentAccount from "../../hooks/use-current-account"; import { buildImageProxyURL } from "../../helpers/image"; import UserDnsIdentityIcon from "./user-dns-identity-icon"; import styled from "@emotion/styled"; -import useSubject from "../../hooks/use-subject"; -import localSettings from "../../services/local-settings"; +import useUserMuteList from "../../hooks/use-user-mute-list"; export const UserIdenticon = memo(({ pubkey }: { pubkey: string }) => { const { value: identicon } = useAsync(() => getIdenticon(pubkey), [pubkey]); @@ -35,9 +34,20 @@ export type UserAvatarProps = Omit & export const UserAvatar = forwardRef( ({ pubkey, noProxy, relay, size, ...props }, ref) => { const metadata = useUserMetadata(pubkey, relay ? [relay] : undefined); + const account = useCurrentAccount(); + const muteList = useUserMuteList(account?.pubkey); + + const muted = muteList?.tags.some((t) => t[0] === "p" && t[1] === pubkey); return ( - + {size !== "xs" && (