From d7dbe7fee362d587dfc334135d9581b6216a4295 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 23 Nov 2025 04:13:56 +0000
Subject: [PATCH] =Timeline block, and feed block updated. DataStore.js refactored to not block rendering

---
 inc/managers/LoginManager.php |  112 +++++++++++++-------------------------------------------
 1 files changed, 26 insertions(+), 86 deletions(-)

diff --git a/inc/managers/LoginManager.php b/inc/managers/LoginManager.php
index 7ded3ba..525a53f 100644
--- a/inc/managers/LoginManager.php
+++ b/inc/managers/LoginManager.php
@@ -45,7 +45,7 @@
 	{
 		$this->siteFeatures = Features::forSite();
 		$this->emailManager = new EmailManager();
-		$this->rateLimiter = new AjaxRateLimiter();
+
 
 		$this->cache = CacheManager::for('login');
 
@@ -664,10 +664,7 @@
 	/*************************************************************************
  	*	SECURITY & VALIDATION
 	*************************************************************************/
-	protected function checkAjaxRateLimit(string $action): bool
-	{
-		return $this->rateLimiter->checkLimit($action);
-	}
+
 	protected function checkRequestId(): bool
 	{
 		$request_id = $_POST['request_id'] ?? '';
@@ -841,8 +838,7 @@
 		$action = $this->getAction();
 		ob_start();
 		?>
-		<script type="text/javascript">
-		window.checkedEmails = new Set();
+
 		document.addEventListener('DOMContentLoaded', () => {
 			const form = document.querySelector('.login form');
 			if (!form) return;
@@ -863,33 +859,34 @@
 			window.LoginController.subscribe((event, data) => {
 				if (event === 'form-submit') {
 					handleFormSubmission(data);
-				} else if (event === 'field-validated' && data.name === 'user_email') {
-					if (!window.checkedEmails.has(data.value)){
-						checkEmail(data.value, data);
-					}
 				}
 			});
 
 
 			async function handleFormSubmission(data) {
-				const { formId, config, data: formData } = data;
-				const form = config.element;
-				const submit = form.querySelector('[type=submit]');
-				let oldText = submit.textContent;
-				// Show uploading status
-				window.LoginController.showFormStatus(formId, 'uploading');
+			let realFormData = data.fullData;
+			const { formId, config, data: formData } = data;
 
-				try {
-					submit.disabled = true;
-					submit.textContent = 'Loading...';
-					const response = await fetch(`${jvbSettings.api}<?=($action === 'magic') ? $action : 'auth/'.$action?>`, {
-						method: 'POST',
-						headers: {
-							'Content-Type': 'application/json',
-							'X-WP-Nonce': jvbSettings.nonce
-						},
-						body: JSON.stringify(formData)
-					});
+
+			const form = config.element;
+
+			const submit = form.querySelector('[type=submit]');
+			let oldText = submit.textContent;
+
+
+			window.LoginController.showFormStatus(formId, 'uploading');
+
+			try {
+				submit.disabled = true;
+				submit.textContent = 'Loading...';
+				const response = await fetch(`${jvbSettings.api}<?=($action === 'magic') ? $action : 'auth/'.$action?>`, {
+					method: 'POST',
+					headers: {
+                		'Content-Type': 'application/json',
+						'X-WP-Nonce': jvbSettings.nonce
+					},
+					body: JSON.stringify(realFormData)
+				});
 
 					const result = await response.json();
 
@@ -927,68 +924,11 @@
 					submit.disabled = false;
 				}
 			}
-			async function checkEmail(email, input) {
-				window.checkedEmails.add(email);
-				let wrapper = input.closest('.field');
-				let submit = input.closest('form').querySelector('[type=submit]');
-				try {
-					submit.disabled = true;
-					window.LoginController.showSuccess(wrapper, 'Checking our records...');
-					const response = await fetch(`${jvbSettings.api}auth/email`, {
-						method: 'POST',
-						headers: {
-							'Content-Type': 'application/json',
-							'X-WP-Nonce': jvbSettings.nonce
-						},
-						body: JSON.stringify({ email: email })
-					});
 
-					const result = await response.json();
-
-					if (!response.ok) {
-						return; // On error, allow to proceed (fail open)
-					}
-
-					if (result.exists) {
-						<?php
-						switch ($action) {
-							case 'register':
-								echo 'window.LoginController.showError(wrapper,\'This email is already registered. Log in instead?\');';
-								break;
-							case 'login':
-							case 'lostpassword':
-							case 'magic':
-								echo 'window.LoginController.showSuccess(wrapper,\'Email exists in our system.\');';
-								break;
-						}
-						?>
-					} else {
-						<?php
-						switch ($action) {
-							case 'register':
-								echo 'window.LoginController.showSuccess(wrapper,\'Email is available!\');';
-								break;
-							case 'login':
-							case 'lostpassword':
-							case 'magic':
-								echo 'window.LoginController.showError(wrapper,\'This email doesn\\\'t seem to exist in our system. Create account instead?\');';
-								break;
-						}
-						?>
-					}
-
-					return true; // Email is available
-				} catch (error) {
-					console.error('Email check failed:', error);
-					return true; // On network error, allow to proceed
-				}finally {
-					submit.disabled = false;
-				}
-			}
 		});
 
 
-		</script>
+
 		<?php
 		$script = ob_get_clean();
 

--
Gitblit v1.10.0