buttons to save settings.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "nos2x",
|
"name": "nos2x",
|
||||||
"description": "Nostr Signer Extension",
|
"description": "Nostr Signer Extension",
|
||||||
"version": "1.4.0",
|
"version": "1.4.1",
|
||||||
"homepage_url": "https://github.com/fiatjaf/nos2x",
|
"homepage_url": "https://github.com/fiatjaf/nos2x",
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"icons": {
|
"icons": {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import browser from 'webextension-polyfill'
|
|||||||
import React, {useState, useCallback, useEffect} from 'react'
|
import React, {useState, useCallback, useEffect} from 'react'
|
||||||
import {render} from 'react-dom'
|
import {render} from 'react-dom'
|
||||||
import {normalizeRelayURL} from 'nostr-tools/relay'
|
import {normalizeRelayURL} from 'nostr-tools/relay'
|
||||||
import {useDebouncedCallback} from 'use-debounce'
|
|
||||||
|
|
||||||
import {getPermissionsString, readPermissions} from './common'
|
import {getPermissionsString, readPermissions} from './common'
|
||||||
|
|
||||||
@@ -18,21 +17,6 @@ function Options() {
|
|||||||
setTimeout(setMessage, 3000)
|
setTimeout(setMessage, 3000)
|
||||||
})
|
})
|
||||||
|
|
||||||
const saveRelays = useDebouncedCallback(async () => {
|
|
||||||
await browser.storage.local.set({
|
|
||||||
relays: Object.fromEntries(
|
|
||||||
relays
|
|
||||||
.filter(({url}) => url.trim() !== '')
|
|
||||||
.map(({url, policy}) => [url.trim(), policy])
|
|
||||||
)
|
|
||||||
})
|
|
||||||
showMessage('saved relays!')
|
|
||||||
}, 700)
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
saveRelays()
|
|
||||||
}, [relays])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
browser.storage.local.get(['private_key', 'relays']).then(results => {
|
browser.storage.local.get(['private_key', 'relays']).then(results => {
|
||||||
if (results.private_key) setKey(results.private_key)
|
if (results.private_key) setKey(results.private_key)
|
||||||
@@ -75,7 +59,7 @@ function Options() {
|
|||||||
{relays.map(({url, policy}, i) => (
|
{relays.map(({url, policy}, i) => (
|
||||||
<div key={i} style={{display: 'flex'}}>
|
<div key={i} style={{display: 'flex'}}>
|
||||||
<input
|
<input
|
||||||
style={{marginRight: '10px'}}
|
style={{marginRight: '10px', width: '400px'}}
|
||||||
value={url}
|
value={url}
|
||||||
onChange={changeRelayURL.bind(null, i)}
|
onChange={changeRelayURL.bind(null, i)}
|
||||||
/>
|
/>
|
||||||
@@ -99,17 +83,33 @@ function Options() {
|
|||||||
))}
|
))}
|
||||||
<div style={{display: 'flex'}}>
|
<div style={{display: 'flex'}}>
|
||||||
<input
|
<input
|
||||||
|
style={{width: '400px'}}
|
||||||
value={newRelayURL}
|
value={newRelayURL}
|
||||||
onChange={e => setNewRelayURL(e.target.value)}
|
onChange={e => setNewRelayURL(e.target.value)}
|
||||||
onBlur={addNewRelay}
|
onBlur={addNewRelay}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<button onClick={saveRelays}>save</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label>
|
<label>
|
||||||
private key:
|
<div>private key: </div>
|
||||||
<input value={key} onChange={handleKeyChange} />
|
<div style={{marginLeft: '10px'}}>
|
||||||
|
<input
|
||||||
|
style={{width: '500px'}}
|
||||||
|
value={key}
|
||||||
|
onChange={handleKeyChange}
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
disabled={!(key.match(/^[a-f0-9]{64}$/) || key === '')}
|
||||||
|
onClick={saveKey}
|
||||||
|
>
|
||||||
|
save
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</label>
|
</label>
|
||||||
{permissions?.length > 0 && (
|
{permissions?.length > 0 && (
|
||||||
<>
|
<>
|
||||||
@@ -150,13 +150,13 @@ function Options() {
|
|||||||
async function handleKeyChange(e) {
|
async function handleKeyChange(e) {
|
||||||
let key = e.target.value.toLowerCase().trim()
|
let key = e.target.value.toLowerCase().trim()
|
||||||
setKey(key)
|
setKey(key)
|
||||||
|
}
|
||||||
|
|
||||||
if (key.match(/^[a-f0-9]{64}$/) || key === '') {
|
async function saveKey() {
|
||||||
await browser.storage.local.set({
|
await browser.storage.local.set({
|
||||||
private_key: key
|
private_key: key
|
||||||
})
|
})
|
||||||
showMessage('saved private key!')
|
showMessage('saved private key!')
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeRelayURL(i, ev) {
|
function changeRelayURL(i, ev) {
|
||||||
@@ -186,6 +186,17 @@ function Options() {
|
|||||||
setRelays(relays)
|
setRelays(relays)
|
||||||
setNewRelayURL('')
|
setNewRelayURL('')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function saveRelays() {
|
||||||
|
await browser.storage.local.set({
|
||||||
|
relays: Object.fromEntries(
|
||||||
|
relays
|
||||||
|
.filter(({url}) => url.trim() !== '')
|
||||||
|
.map(({url, policy}) => [url.trim(), policy])
|
||||||
|
)
|
||||||
|
})
|
||||||
|
showMessage('saved relays!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render(<Options />, document.getElementById('main'))
|
render(<Options />, document.getElementById('main'))
|
||||||
|
|||||||
Reference in New Issue
Block a user