- {!pubKey ? (
+ {!keys ? (
@@ -129,31 +124,53 @@ function Popup() {
>
hex
-
- naddr
-
+ {keys.nprofile ? (
+
+ nprofile
+
+ ) : null}
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {keys.nprofile ? (
+
+
+
+
+
+
+
+
+ ) : null}
diff --git a/extension/prompt.html b/extension/prompt.html
index 2b1fdf4..1b7d871 100644
--- a/extension/prompt.html
+++ b/extension/prompt.html
@@ -2,7 +2,7 @@
-
nos2x
+
Nostr Connect (formerly nos2x)
diff --git a/extension/prompt.jsx b/extension/prompt.jsx
index 6e110d4..f444275 100644
--- a/extension/prompt.jsx
+++ b/extension/prompt.jsx
@@ -1,15 +1,20 @@
import browser from 'webextension-polyfill'
import {render} from 'react-dom'
-import React from 'react'
+import React, {useState} from 'react'
import {PERMISSION_NAMES} from './common'
+import {LogoIcon} from './icons'
+import * as Checkbox from '@radix-ui/react-checkbox'
function Prompt() {
+ const [isRemember, setIsRemember] = useState(false)
+
let qs = new URLSearchParams(location.search)
let id = qs.get('id')
let host = qs.get('host')
let type = qs.get('type')
let params, event
+
try {
params = JSON.parse(qs.get('params'))
if (Object.keys(params).length === 0) params = null
@@ -18,83 +23,8 @@ function Prompt() {
params = null
}
- return (
- <>
-
-
- {host}
- {' '}
-
- is requesting your permission to {PERMISSION_NAMES[type]}:
-
-
- {params && (
- <>
-
now acting on
-
- {JSON.stringify(event || params, null, 2)}
-
- >
- )}
-
-
- {event?.kind !== undefined && (
-
- )}
-
- {event?.kind !== undefined ? (
-
- ) : (
-
- )}
-
-
- >
- )
-
- function authorizeHandler(accept, conditions) {
+ function authorizeHandler(accept) {
+ const conditions = isRemember ? {} : null
return function (ev) {
ev.preventDefault()
browser.runtime.sendMessage({
@@ -107,6 +37,129 @@ function Prompt() {
})
}
}
+
+ return (
+
+
+
+
+
+
{host}
+
+ is requesting your permission to {PERMISSION_NAMES[type]}
+
+
+
+ {params && (
+
+
Now acting on
+
+ {JSON.stringify(event || params, null, 2)}
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/*
+
+
+ {event?.kind !== undefined && (
+
+ )}
+
+ {event?.kind !== undefined ? (
+
+ ) : (
+
+ )}
+
+
*/}
+
+
+ )
}
render(
, document.getElementById('main'))
diff --git a/package.json b/package.json
index 52ae9b7..c11c77a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"license": "WTFPL",
"dependencies": {
+ "@radix-ui/react-checkbox": "^1.0.4",
"@radix-ui/react-tabs": "^1.0.4",
"async-mutex": "^0.3.2",
"esbuild": "^0.14.54",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5b5caf9..2ecdaf1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,6 +5,9 @@ settings:
excludeLinksFromLockfile: false
dependencies:
+ '@radix-ui/react-checkbox':
+ specifier: ^1.0.4
+ version: 1.0.4(react-dom@17.0.2)(react@17.0.2)
'@radix-ui/react-tabs':
specifier: ^1.0.4
version: 1.0.4(react-dom@17.0.2)(react@17.0.2)
@@ -1730,6 +1733,32 @@ packages:
'@babel/runtime': 7.23.2
dev: false
+ /@radix-ui/react-checkbox@1.0.4(react-dom@17.0.2)(react@17.0.2):
+ resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(react@17.0.2)
+ '@radix-ui/react-context': 1.0.1(react@17.0.2)
+ '@radix-ui/react-presence': 1.0.1(react-dom@17.0.2)(react@17.0.2)
+ '@radix-ui/react-primitive': 1.0.3(react-dom@17.0.2)(react@17.0.2)
+ '@radix-ui/react-use-controllable-state': 1.0.1(react@17.0.2)
+ '@radix-ui/react-use-previous': 1.0.1(react@17.0.2)
+ '@radix-ui/react-use-size': 1.0.1(react@17.0.2)
+ react: 17.0.2
+ react-dom: 17.0.2(react@17.0.2)
+ dev: false
+
/@radix-ui/react-collection@1.0.3(react-dom@17.0.2)(react@17.0.2):
resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
peerDependencies:
@@ -1951,6 +1980,33 @@ packages:
react: 17.0.2
dev: false
+ /@radix-ui/react-use-previous@1.0.1(react@17.0.2):
+ resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ react: 17.0.2
+ dev: false
+
+ /@radix-ui/react-use-size@1.0.1(react@17.0.2):
+ resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-use-layout-effect': 1.0.1(react@17.0.2)
+ react: 17.0.2
+ dev: false
+
/@react-native-community/cli-clean@11.3.10:
resolution: {integrity: sha512-g6QjW+DSqoWRHzmIQW3AH22k1AnynWuOdy2YPwYEGgPddTeXZtJphIpEVwDOiC0L4mZv2VmiX33/cGNUwO0cIA==}
dependencies: