From e729f920139f0c65902be2d6b2c32466b08375e8 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 20 Oct 2025 17:54:52 +0000
Subject: [PATCH] =Form updates

---
 inc/managers/ReferralManager.php |   80 ++++++++++++++++------------------------
 1 files changed, 32 insertions(+), 48 deletions(-)

diff --git a/inc/managers/ReferralManager.php b/inc/managers/ReferralManager.php
index 429ea99..9777fa4 100644
--- a/inc/managers/ReferralManager.php
+++ b/inc/managers/ReferralManager.php
@@ -3,6 +3,7 @@
 
 use JVBase\managers\MagicLinkManager;
 use JVBase\integrations\Cloudflare;
+use JVBase\meta\MetaForm;
 use JVBase\utility\Features;
 use WP_User;
 use WP_Error;
@@ -58,7 +59,7 @@
 		add_filter(BASE.'new_user_email_content', [$this, 'addReferralToWelcomeEmail'], 99, 2);
 
 
-		add_action('jvbAdditionalActions', [$this, 'outputShareWidget']);
+		add_filter('jvbAdditionalActions', [$this, 'outputShareWidget']);
 
 		add_action('wp_enqueue_scripts', [$this, 'enqueueScripts']);
 		// Schedule cron jobs for reports
@@ -877,14 +878,13 @@
 	{
 
 		$user_id = get_current_user_id();
-		jvbDump($user_id);
 		$content = '<aside class="jvb-referral right">';
 		if (!$user_id) {
 			$content .= $this->getUnloggedInReferral();
 		} else {
 			$content .= $this->getLoggedInReferral($user_id);
 		}
-		$content .= '<button type="button" class="close">'.jvbIcon('close').'</button></aside>';
+		$content .= '</aside>';
 
 		$actions[] =[
 			'button' => '<button type="button" class="toggle-referral row" title="Your Referrals" data-action="toggle-referral" aria-label="Open Referral Sidebar" aria-controls="referral" aria-expanded="false">
@@ -901,44 +901,30 @@
 		ob_start();
 		JVB()->connect('cloudflare')->renderTurnstile();
 		$turnstile = ob_get_clean();
+		$meta = new MetaForm();
 		$codeForm = '<form id="referral-code-form">
-					<div class="status" hidden>
-						<div class="spinner"></div>
-						<p class="message"></p>
-					</div>
-					<div class="field text">
-						<label for="referral-name">Your Name</label>
-						<input type="text"
-							   id="referral-name"
-							   name="name"
-							   placeholder="Mister Meeseeks"
-							   autocomplete="name"
-							   required>
-					</div>
-
-					<div class="field email">
-						<label for="referral-email">Your Email</label>
-						<input type="email"
-							   id="referral-email"
-							   name="email"
-							   placeholder="look@me.com"
-							   autocomplete="email"
-							   required>
-					</div>
-
-					<div class="field text">
-						<label for="referral-code-input">Referral Code</label>
-						<input type="text"
-							   id="referral-code-input"
-							   name="referral_code"
-							   placeholder="e.g., THISISFAKE1234"
-							   required
-							   pattern="[A-Za-z0-9]+"
-							   maxlength="20"
-							   autocomplete="off"
-							   style="text-transform: uppercase;">
-					</div>
-
+					'.jvbFormStatus().$meta->return('referral_name', null, [
+						'required'	=> true,
+						'type'		=> 'text',
+						'label'		=> 'Your Name',
+						'placeholder'=> 'Mister Meeseeks',
+						'autocomplete'=>'name'
+					]).
+					$meta->return('referral_email', null, [
+						'required'	=> true,
+						'type'		=> 'email',
+						'label'		=> 'Your Email',
+						'placeholder'=> 'look@me.com',
+						'autocomplete'=> 'email'
+					]).
+					$meta->return('referral_code', null, [
+						'required'	=> true,
+						'type'		=> 'text',
+						'label'		=> 'Referral Code',
+						'pattern'	=> '[A-Za-z0-9]+',
+						'maxLength'	=> 20,
+						'autocomplete'=>'off'
+					]).'
 					<button type="submit">
 						Get Started
 					</button>
@@ -954,14 +940,12 @@
 				</div>';
 
 		$loginForm = '<form id ="login-form">
-		<div class="status" hidden>
-			<div class="spinner"></div>
-			<p class="message"></p>
-		</div>
-		<div class="field email">
-			<label for="login-email">Your Email</label>
-			<input id="login-email" name="login-email" type="email" autocomplete="email">
-		</div>
+		'.jvbFormStatus().$meta->return('login_email', null, [
+				'required'	=> true,
+				'type'		=> 'email',
+				'label'		=> 'Your Email',
+				'autocomplete'=>'email'
+			]).'
 		'.$turnstile.'
 		<button type="submit">Login With Magic Link</button>
 </form>

--
Gitblit v1.10.0