diff --git a/public/javascript/invite.js b/public/javascript/invite.js deleted file mode 100644 index 70bb66d..0000000 --- a/public/javascript/invite.js +++ /dev/null @@ -1,74 +0,0 @@ -window.onload = function () { - if (!window.nostr) { - console.log('Nostr extension not present'); - document.querySelector('#nostr-signup-button').disabled = true; - document.querySelector('#no-extension-nudges').style.display = 'block'; - } else { - console.log('Nostr extension present'); - } -}; - -const signUpConfirmation = document.querySelector('#sign-up-success'); - -function showConfirmationAndRedirect() { - signUpConfirmation.classList.add('revealed'); - setTimeout(() => { - window.location.href = '/createProfile'; - }, 5000); -} - -async function acceptInvite() { - let challengeResponse; - try { - challengeResponse = await fetch('/api/signup/nostr-challenge', { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - }, - }); - } catch (error) { - console.log(`Something went wrong: ${error}`); - return; - } - - const { challenge } = await challengeResponse.json(); - - let pubkey; - try { - pubkey = await window.nostr.getPublicKey(); - } catch (error) { - document.querySelector('#rejected-nostr-nudges').style.display = 'block'; - return; - } - const event = { - kind: 22242, - created_at: Math.floor(Date.now() / 1000), - tags: [['challenge', challenge]], - content: 'Sign this challenge to authenticate', - pubkey: pubkey, - }; - - let signedEvent; - try { - signedEvent = await window.nostr.signEvent(event); - } catch (error) { - document.querySelector('#rejected-nostr-nudges').style.display = 'block'; - return; - } - - let verifyResponse; - try { - verifyResponse = await fetch('/api/signup/nostr-verify', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(signedEvent), - }); - } catch (error) { - console.log(`Something went wrong: ${error}`); - return; - } - - if (verifyResponse.ok) { - showConfirmationAndRedirect(); - } -} diff --git a/src/front/pages/invite.js b/src/front/pages/invite.js new file mode 100644 index 0000000..c5b947e --- /dev/null +++ b/src/front/pages/invite.js @@ -0,0 +1,83 @@ +const invitesFunction = () => { + window.onload = function () { + if (!window.nostr) { + console.log('Nostr extension not present'); + document.querySelector('#nostr-signup-button').disabled = true; + document.querySelector('#no-extension-nudges').style.display = 'block'; + } else { + console.log('Nostr extension present'); + } + }; + + const signUpConfirmation = document.querySelector('#sign-up-success'); + + function showConfirmationAndRedirect() { + signUpConfirmation.classList.add('revealed'); + setTimeout(() => { + window.location.href = '/createProfile'; + }, 5000); + } + + async function acceptInvite() { + let challengeResponse; + try { + challengeResponse = await fetch('/api/signup/nostr-challenge', { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + }, + }); + } catch (error) { + console.log(`Something went wrong: ${error}`); + return; + } + + const { challenge } = await challengeResponse.json(); + + let pubkey; + try { + pubkey = await window.nostr.getPublicKey(); + } catch (error) { + document.querySelector('#rejected-nostr-nudges').style.display = 'block'; + return; + } + const event = { + kind: 22242, + created_at: Math.floor(Date.now() / 1000), + tags: [['challenge', challenge]], + content: 'Sign this challenge to authenticate', + pubkey: pubkey, + }; + + let signedEvent; + try { + signedEvent = await window.nostr.signEvent(event); + } catch (error) { + document.querySelector('#rejected-nostr-nudges').style.display = 'block'; + return; + } + + let verifyResponse; + try { + verifyResponse = await fetch('/api/signup/nostr-verify', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(signedEvent), + }); + } catch (error) { + console.log(`Something went wrong: ${error}`); + return; + } + + if (verifyResponse.ok) { + showConfirmationAndRedirect(); + } + } + + const signUpButton = document.getElementById('nostr-signup-button'); + signUpButton.addEventListener('click', () => { + acceptInvite(); + }); +}; + +invitesFunction(); diff --git a/src/views/invite.ejs b/src/views/invite.ejs index 3957b59..d5e4dc9 100644 --- a/src/views/invite.ejs +++ b/src/views/invite.ejs @@ -21,7 +21,7 @@ />

Usa tu extensión de Nostr para darte de alta:

-
+
- +
- +