import browser from 'webextension-polyfill' import React, {useState, useEffect} from 'react' import {render} from 'react-dom' import {getPermissionsString, readPermissions} from './common' function Options() { let [key, setKey] = useState('') let [permissions, setPermissions] = useState() let [message, setMessage] = useState('') useEffect(() => { browser.storage.local.get(['private_key']).then(results => { if (results.private_key) setKey(results.private_key) }) }, []) useEffect(() => { readPermissions().then(permissions => { setPermissions( Object.entries(permissions).map( ([host, {level, condition, created_at}]) => ({ host, level, condition, created_at }) ) ) }) }, []) return ( <>

nos2x

nostr signer extension

options

{permissions?.length > 0 && ( <>

permissions

{permissions.map(({host, level, condition, created_at}) => ( ))}
domain permissions condition since
{host} {getPermissionsString(level)} {condition} {new Date(created_at * 1000) .toISOString() .split('.')[0] .split('T') .join(' ')}
)}
{message}
) async function handleKeyChange(e) { let key = e.target.value.toLowerCase().trim() setKey(key) if (key.match(/^[a-f0-9]{64}$/) || key === '') { await browser.storage.local.set({ private_key: key }) setMessage('saved!') setTimeout(setMessage, 3000) } } } render(, document.getElementById('main'))