snort/src/element/ProfileImage.js

35 lines
1.0 KiB
JavaScript
Raw Normal View History

2023-01-06 11:04:25 +00:00
import { useMemo } from "react";
import { Link, useNavigate } from "react-router-dom";
2022-12-29 22:23:41 +00:00
import useProfile from "../feed/ProfileFeed";
2022-12-28 16:08:33 +00:00
import Nostrich from "../nostrich.jpg";
2023-01-06 11:04:25 +00:00
import "./ProfileImage.css";
2022-12-27 23:46:13 +00:00
export default function ProfileImage(props) {
2023-01-02 11:15:13 +00:00
const pubkey = props.pubkey;
2022-12-27 23:46:13 +00:00
const subHeader = props.subHeader;
const navigate = useNavigate();
2023-01-02 11:15:13 +00:00
const user = useProfile(pubkey);
2022-12-27 23:46:13 +00:00
2023-01-01 19:57:27 +00:00
const hasImage = (user?.picture?.length ?? 0) > 0;
2023-01-04 11:29:00 +00:00
const name = useMemo(() => {
let name = pubkey.substring(0, 8);
if (user?.display_name?.length > 0) {
name = user.display_name;
} else if (user?.name?.length > 0) {
name = user.name;
}
return name;
}, [user]);
2022-12-27 23:46:13 +00:00
return (
<div className="pfp">
2023-01-02 11:15:13 +00:00
<img src={hasImage ? user.picture : Nostrich} onClick={() => navigate(`/p/${pubkey}`)} />
2022-12-27 23:46:13 +00:00
<div>
2023-01-06 11:04:25 +00:00
<Link key={pubkey} to={`/p/${pubkey}`}>{name}</Link>
2023-01-02 11:15:13 +00:00
{subHeader ? <div>{subHeader}</div> : null}
2022-12-27 23:46:13 +00:00
</div>
</div>
)
}