diff --git a/src/element/Nip05.css b/src/element/Nip05.css new file mode 100644 index 00000000..b51e795e --- /dev/null +++ b/src/element/Nip05.css @@ -0,0 +1,18 @@ +.nip05 { + align-items: center; + font-size: 14px; + justify-content: flex-start; + margin: .2em 0; +} + +.nip05 .nick { + color: #999; +} + +.nip05 .domain { + color: #DDD; +} + +.nip05 .badge { + margin-left: .2em; +} diff --git a/src/element/Nip05.js b/src/element/Nip05.js new file mode 100644 index 00000000..b24a9206 --- /dev/null +++ b/src/element/Nip05.js @@ -0,0 +1,43 @@ +import { useState, useEffect } from "react"; + +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faCheck } from "@fortawesome/free-solid-svg-icons"; + +import './Nip05.css' + +const Nip05 = ({ nip05, pubkey }) => { + const [nip05pubkey, setNip05pubkey] = useState() + const isVerified = nip05pubkey === pubkey + const [nick, domain] = nip05.split('@') + + useEffect(() => { + fetch(`https://${domain}/.well-known/nostr.json`) + .then((res) => res.json()) + .then(({ names }) => { + if (names && names[nick]) { + setNip05pubkey(names[nick]) + } + }) + .catch((err) => { + console.error("Couldn't verifiy nip05") + }) + }, [nip05, nick, domain]) + + return ( +
{extractLinks([user?.about])}
{user?.website ? {user?.website} : null}