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>
|
|
|
|
)
|
|
|
|
}
|