import browser from 'webextension-polyfill' import {render} from 'react-dom' import {getPublicKey, nip19} from 'nostr-tools' import React, {useState, useMemo, useEffect} from 'react' import QRCode from 'react-qr-code' import {SettingsIcon} from './icons' import {minidenticon} from 'minidenticons' import * as Tabs from '@radix-ui/react-tabs' function Popup() { let [keys, setKeys] = useState(null) let avatarURI = useMemo( () => keys ? 'data:image/svg+xml;utf8,' + encodeURIComponent(minidenticon(keys.npub, 90, 30)) : null, [keys] ) const gotoSettings = () => { browser.tabs.create({ url: browser.runtime.getURL('/options.html') }) } useEffect(() => { browser.storage.local.get(['private_key', 'relays']).then(results => { if (results.private_key) { let hexKey = getPublicKey(results.private_key) let npubKey = nip19.npubEncode(hexKey) setKeys({npub: npubKey, hex: hexKey}) if (results.relays) { let relaysList = [] for (let url in results.relays) { if (results.relays[url].write) { relaysList.push(url) if (relaysList.length >= 3) break } } if (relaysList.length) { let nprofileKey = nip19.nprofileEncode({ pubkey: hexKey, relays: relaysList }) setKeys(prev => ({...prev, nprofile: nprofileKey})) } } } else { setKeys(null) } }) }, []) return (
Click here to enter or create
your first identity
Account