import browser from 'webextension-polyfill' import React, {useState, useCallback, useEffect} from 'react' import {render} from 'react-dom' import {normalizeRelayURL} from 'nostr-tools/relay' import {getPermissionsString, readPermissions} from './common' function Options() { let [key, setKey] = useState('') let [relays, setRelays] = useState([]) let [newRelayURL, setNewRelayURL] = useState('') let [permissions, setPermissions] = useState() let [message, setMessage] = useState('') const showMessage = useCallback(msg => { setMessage(msg) setTimeout(setMessage, 3000) }) useEffect(() => { browser.storage.local.get(['private_key', 'relays']).then(results => { if (results.private_key) setKey(results.private_key) if (results.relays) { let relaysList = [] for (let url in results.relays) { relaysList.push({ url, policy: results.relays[url] }) } setRelays(relaysList) } }) }, []) useEffect(() => { readPermissions().then(permissions => { setPermissions( Object.entries(permissions).map( ([host, {level, condition, created_at}]) => ({ host, level, condition, created_at }) ) ) }) }, []) return ( <>
nostr signer extension
| domain | permissions | condition | since |
|---|---|---|---|
| {host} | {getPermissionsString(level)} | {condition} | {new Date(created_at * 1000) .toISOString() .split('.')[0] .split('T') .join(' ')} |