From a9654f00c8fbc9934289d761843ddd071025013f Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 28 Aug 2026 17:20:28 +0000
Subject: [PATCH] =PHPStorm Code Inspection: fixed class reference errors (from getting rid of JVB() and replacing with direct class::getInstance; as well as general code sniffing, etc

---
 inc/admin/Integrations.php |   82 +++++++++++++++++++++++++++-------------
 1 files changed, 55 insertions(+), 27 deletions(-)

diff --git a/inc/admin/Integrations.php b/inc/admin/Integrations.php
index 2604c8b..91f63f0 100644
--- a/inc/admin/Integrations.php
+++ b/inc/admin/Integrations.php
@@ -1,17 +1,24 @@
 <?php
 namespace JVBase\admin;
 
+use JVBase\integrations\ServiceMap;
+use JVBase\managers\IconsManager;
+use JVBase\registrar\Registrar;
+
 if (!defined('ABSPATH')) {
 	exit;
 }
 
 class Integrations
 {
+	use ServiceMap;
+
 	public function __construct()
 	{
 		// Hook into WordPress admin
 		add_action('admin_menu', [$this, 'registerAdminPages']);
 		add_action('admin_enqueue_scripts', [$this, 'enqueueAdminAssets']);
+		add_action(BASE.'dashboard_page_integrations', [$this, 'renderDashPage'], 10);
 	}
 
 	/**
@@ -30,17 +37,15 @@
 		);
 
 		// Add submenu pages for configured integrations
-		$integrations = JVB()->getAvailableServices(false);
-
-		foreach($integrations as $service => $integration) {
-//			if ($integration->isSetUp() && !empty($integration->enabledContentTypes())) {
-			if (!empty($integration->enabledContentTypes())) {
+		foreach ($this->getAvailableServices() as $service) {
+			$integration = $this->getService($service);
+			if ($integration->isSetUp() && method_exists($integration, 'getAllowedContent') && !empty($integration->getAllowedContent())) {
 				add_submenu_page(
 					'jvb-integrations',
 					$integration->getTitle() . ' Defaults',
 					$integration->getTitle(),
 					'manage_options',
-					'jvb-integration-'.$service,
+					'jvb-integration-'.$integration->getServiceName(),
 					[$integration, 'renderDefaults']
 				);
 			}
@@ -64,22 +69,38 @@
 		wp_enqueue_script(
 			'jvb-admin-scripts',
 			JVB_URL . 'assets/js/min/integrations.min.js',
-			[],
+			['jvb-auth'],
 			'1.0.0',
 			true
 		);
 
-		wp_localize_script(
-			'jvb-admin-scripts',
-			'jvbSettings',
-			[
-				'api'    => rest_url('jvb/v1/'),
-				'currentUser'	=> get_current_user_id(),
-				'nonce'  => wp_create_nonce('wp_rest'),
-			]
-		);
+		IconsManager::for()->enqueueIconStyles();
+		IconsManager::for('dash')->enqueueIconStyles();
+		IconsManager::for('forms')->enqueueIconStyles();
+
+		$queue = [
+			'api' => rest_url('jvb/v1/'),
+			'redirect' => wp_login_url(home_url(add_query_arg(null, null))),
+			'labels' => Registrar::getLabels(),
+		];
+
+		wp_localize_script('jvb-auth', 'jvbSettings', $queue);
+//
+//		wp_localize_script(
+//			'jvb-admin-scripts',
+//			'jvbSettings',
+//			[
+//				'api'    => rest_url('jvb/v1/'),
+//				'currentUser'	=> get_current_user_id(),
+//				'nonce'  => wp_create_nonce('wp_rest'),
+//			]
+//		);
 	}
 
+	public function renderDashPage():void
+	{
+		$this->renderPage();
+	}
 	/**
 	 * Render the main integrations page
 	 */
@@ -92,23 +113,30 @@
 			<div class="jvb-admin-content">
 				<?php
 				// Display any admin notices from form submissions
-				settings_errors('jvb_integrations');
+				if (is_admin()) {
+					settings_errors('jvb_integrations');
+				}
+
 				$this->displayNotices();
 				?>
 
 				<div class="item-grid integrations">
 					<?php
-					$integrations = JVB()->getAvailableServices(false);
+					foreach ($this->getAvailableServices() as $service) {
+						$integration = $this->getService($service);
+						if ($integration->isSetUp() && method_exists($integration, 'renderConnection')) {
+							$integration->renderConnection();
+						}
+					}
 
-					foreach ($integrations as $service => $integration):
-						$integration->renderConnection();
-					endforeach;
 					?>
 				</div>
 			</div>
 		</div>
 
-		<?php $this->renderStyles(); ?>
+		<?php if (is_admin()) {
+			$this->renderStyles();
+		} ?>
 		<?php
 	}
 
@@ -247,7 +275,7 @@
 				--mt: 1rem;
 				--mb: 1rem;
 				--setMargin: var(--mt) var(--mr) var(--mb) var(--ml);
-				--insetMargin: var(--mt) calc((var(--maxWidth) - var(--narrow)) / 2 + var(--mr)) var(--mb) var(--ml);
+				--insetMargin: var(--mt) calc((var(--content) - var(--narrow)) / 2 + var(--mr)) var(--mb) var(--ml);
 				--height: 4rem;
 				--doubleHeight: 8rem;
 				--offHeight: 5rem;
@@ -388,10 +416,10 @@
 
 
 				--scrollbar-width: 8px;
-				--scrollbar-track-color: var(--base-100);
-				--scrollbar-thumb-color: var(--action-0);
-				--scrollbar-thumb-hover-color: var(--action-50);
-				--scrollbar-thumb-border: 2px solid var(--base-50);
+				--scrollbar-track-color: rgb(var(--base-100));
+				--scrollbar-thumb-color: rgb(var(--action-0));
+				--scrollbar-thumb-hover-color: rgb(var(--action-50));
+				--scrollbar-thumb-border: 2px solid rgb(var(--base-50));
 				--scrollbar-border-radius: 4px;
 			}
 			.item-grid.integrations {

--
Gitblit v1.10.0