DM's #54
@ -273,6 +273,10 @@ body.scroll-lock {
|
|||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mr5 {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.ml5 {
|
.ml5 {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
@ -10,10 +10,6 @@
|
|||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile .name {
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile .name h2 {
|
.profile .name h2 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,12 @@ import Nostrich from "../nostrich.jpg";
|
|||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
import { useSelector } from "react-redux";
|
import { useSelector } from "react-redux";
|
||||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||||
import { faQrcode, faGear } from "@fortawesome/free-solid-svg-icons";
|
import { faQrcode, faGear, faEnvelope } from "@fortawesome/free-solid-svg-icons";
|
||||||
import { useNavigate, useParams } from "react-router-dom";
|
import { useNavigate, useParams } from "react-router-dom";
|
||||||
|
|
||||||
import useProfile from "../feed/ProfileFeed";
|
import useProfile from "../feed/ProfileFeed";
|
||||||
import FollowButton from "../element/FollowButton";
|
import FollowButton from "../element/FollowButton";
|
||||||
import { extractLnAddress, parseId } from "../Util";
|
import { extractLnAddress, parseId, hexToBech32 } from "../Util";
|
||||||
import Timeline from "../element/Timeline";
|
import Timeline from "../element/Timeline";
|
||||||
import { extractLinks, extractHashtags } from '../Text'
|
import { extractLinks, extractHashtags } from '../Text'
|
||||||
import LNURLTip from "../element/LNURLTip";
|
import LNURLTip from "../element/LNURLTip";
|
||||||
@ -50,20 +50,30 @@ export default function ProfilePage() {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="flex name">
|
<div className="flex name">
|
||||||
<div className="f-grow">
|
<div className="f-grow f-ellipsis">
|
||||||
<h2>{user?.display_name || user?.name}</h2>
|
<h2>{user?.display_name || user?.name}</h2></div>
|
||||||
<Copy text={params.id} />
|
<div className="flex">
|
||||||
{user?.nip05 && <Nip05 name={name} domain={domain} isVerified={isVerified} couldNotVerify={couldNotVerify} />}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
{isMe ? (
|
{isMe ? (
|
||||||
<div className="btn btn-icon" onClick={() => navigate("/settings")}>
|
<div className="btn btn-icon" onClick={() => navigate("/settings")}>
|
||||||
<FontAwesomeIcon icon={faGear} size="lg" />
|
<FontAwesomeIcon icon={faGear} size="lg" />
|
||||||
</div>
|
</div>
|
||||||
) : <FollowButton pubkey={id} />
|
) : <>
|
||||||
|
<div className="btn mr5" onClick={() => navigate(`/messages/${hexToBech32("npub", id)}`)}>
|
||||||
|
<FontAwesomeIcon icon={faEnvelope} size="lg" />
|
||||||
|
</div>
|
||||||
|
<FollowButton pubkey={id} />
|
||||||
|
</>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="flex">
|
||||||
|
<div className="f-grow">
|
||||||
|
|
||||||
|
<Copy text={params.id} />
|
||||||
|
{user?.nip05 && <Nip05 name={name} domain={domain} isVerified={isVerified} couldNotVerify={couldNotVerify} />}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<p>{about}</p>
|
<p>{about}</p>
|
||||||
|
|
||||||
{user?.website && (
|
{user?.website && (
|
||||||
|
Loading…
Reference in New Issue
Block a user