diff --git a/src/pages/Login.js b/src/pages/Login.js index 97509b8c0..35b820146 100644 --- a/src/pages/Login.js +++ b/src/pages/Login.js @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; -import { setPrivateKey } from "../state/Login"; +import { setPrivateKey, setPublicKey } from "../state/Login"; import * as secp from '@noble/secp256k1'; import { bech32 } from "bech32"; import { useNavigate } from "react-router-dom"; @@ -8,21 +8,21 @@ import { useNavigate } from "react-router-dom"; export default function LoginPage() { const dispatch = useDispatch(); const navigate = useNavigate(); - const privateKey = useSelector(s => s.login.privateKey); + const publicKey = useSelector(s => s.login.publicKey); const [key, setKey] = useState(""); function doLogin() { - if(key.startsWith("nsec")) { + if (key.startsWith("nsec")) { let nKey = bech32.decode(key); let buff = bech32.fromWords(nKey.words); let hexKey = secp.utils.bytesToHex(Uint8Array.from(buff)); - if(secp.utils.isValidPrivateKey(hexKey)) { + if (secp.utils.isValidPrivateKey(hexKey)) { dispatch(setPrivateKey(hexKey)); } else { throw "INVALID PRIVATE KEY"; } } else { - if(secp.utils.isValidPrivateKey(key)) { + if (secp.utils.isValidPrivateKey(key)) { dispatch(setPrivateKey(key)); } else { throw "INVALID PRIVATE KEY"; @@ -30,20 +30,43 @@ export default function LoginPage() { } } + async function doNip07Login() { + let pubKey = await window.nostr.getPublicKey(); + dispatch(setPublicKey(pubKey)); + } + + function altLogins() { + let nip07 = 'nostr' in window; + + if (!nip07) { + return null; + } + + return ( + <> +
Enter your private key: