diff --git a/public/javascript/home.js b/public/javascript/home.js
deleted file mode 100644
index e69de29..0000000
diff --git a/public/javascript/login.js b/public/javascript/login.js
deleted file mode 100644
index 36175b4..0000000
--- a/public/javascript/login.js
+++ /dev/null
@@ -1,72 +0,0 @@
-window.onload = function () {
- if (!window.nostr) {
- console.log('Nostr extension not present');
- document.querySelector('#login-button').disabled = true;
- document.querySelector('#no-extension-nudges').style.display = 'block';
- } else {
- console.log('Nostr extension present');
- }
-};
-
-async function login() {
- let challengeResponse;
- try {
- challengeResponse = await fetch('/api/login/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/login/nostr-verify', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify(signedEvent),
- });
- } catch (error) {
- console.log(`Something went wrong: ${error}`);
- return;
- }
-
- if (verifyResponse.status === 403) {
- document.querySelector('#rejected-public-key').style.display = 'block';
- }
-
- if (verifyResponse.ok) {
- document.querySelector('#sign-up-success').style.display = 'block';
- setTimeout(() => {
- window.location.href = '/home';
- }, 1000);
- }
-}
diff --git a/src/front/pages/login.js b/src/front/pages/login.js
new file mode 100644
index 0000000..121f3e1
--- /dev/null
+++ b/src/front/pages/login.js
@@ -0,0 +1,81 @@
+const loginsFunction = () => {
+ window.onload = function () {
+ if (!window.nostr) {
+ console.log('Nostr extension not present');
+ document.querySelector('#login-button').disabled = true;
+ document.querySelector('#no-extension-nudges').style.display = 'block';
+ } else {
+ console.log('Nostr extension present');
+ }
+ };
+
+ async function login() {
+ let challengeResponse;
+ try {
+ challengeResponse = await fetch('/api/login/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/login/nostr-verify', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(signedEvent),
+ });
+ } catch (error) {
+ console.log(`Something went wrong: ${error}`);
+ return;
+ }
+
+ if (verifyResponse.status === 403) {
+ document.querySelector('#rejected-public-key').style.display = 'block';
+ }
+
+ if (verifyResponse.ok) {
+ document.querySelector('#sign-up-success').style.display = 'block';
+ setTimeout(() => {
+ window.location.href = '/home';
+ }, 1000);
+ }
+ }
+
+ const loginButton = document.getElementById('login-button');
+ loginButton.addEventListener('click', () => {
+ login();
+ });
+};
+
+loginsFunction();
diff --git a/src/views/login.ejs b/src/views/login.ejs
index a4467ec..a954697 100644
--- a/src/views/login.ejs
+++ b/src/views/login.ejs
@@ -13,7 +13,7 @@