import { appSettings, cn } from "@/commons"; import * as Avatar from "@radix-ui/react-avatar"; import { useStore } from "@tanstack/react-store"; import { minidenticon } from "minidenticons"; import { useMemo } from "react"; import { useUserContext } from "./provider"; export function UserAvatar({ className }: { className?: string }) { const [service, visible] = useStore(appSettings, (state) => [ state.image_resize_service, state.display_avatar, ]); const user = useUserContext(); const picture = useMemo(() => { if (service?.length && user.profile?.picture?.length) { return `${service}?url=${user.profile?.picture}&w=100&h=100&n=-1&default=${user.profile?.picture}`; } else { return user.profile?.picture; } }, [user.profile?.picture]); const fallback = useMemo( () => `data:image/svg+xml;utf8,${encodeURIComponent( minidenticon(user.pubkey, 60, 50), )}`, [user.pubkey], ); return ( {visible ? ( ) : null} {user.pubkey} ); }