From 9f86429a1252b45c95b7c62fbaa1b82de3723997 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 05 Jan 2026 18:16:07 +0000
Subject: [PATCH] =Complete TaxonomySelector.js and TaxonomyCreator.js refactor

---
 inc/blocks/VideoCoverBlock.php |   39 ++++++++++++++++++++++++++++++++-------
 1 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/inc/blocks/VideoCoverBlock.php b/inc/blocks/VideoCoverBlock.php
index e6292cd..298ee76 100644
--- a/inc/blocks/VideoCoverBlock.php
+++ b/inc/blocks/VideoCoverBlock.php
@@ -1,6 +1,7 @@
 <?php
 namespace JVBase\blocks;
 
+use JVBase\blocks\CustomBlocks;
 if (!defined('ABSPATH')) {
 	exit;
 }
@@ -14,7 +15,7 @@
 class VideoCoverBlock
 {
 	protected static ?VideoCoverBlock $instance = null;
-	protected string $path = JVB_DIR . '/build/video-cover';
+	protected string $path = JVB_DIR . '/build/video';
 
 	public static function getInstance(): VideoCoverBlock
 	{
@@ -41,18 +42,23 @@
 	 */
 	public function render($attributes, $content): string
 	{
+
 		// Extract attributes with defaults
 		$poster_id = $attributes['posterId'] ?? 0;
 		$video_sources = $attributes['videoSources'] ?? [];
 		$mobile_sources = $attributes['mobileSources'] ?? [];
 		$css_class = $attributes['className'] ?? '';
 		$fade_class = $attributes['fadeEffect'] ?? false ? 'fade' : '';
+		$overlay_opacity = $attributes['overlayOpacity'] ?? 0;
+		$content_alignment = $attributes['contentAlignment'] ?? 'center';
+		$min_height = $attributes['minHeight'] ?? 0;
 		//Get date of current post
 		global $post;
 		$date = date('c',strtotime($post->post_date));
 		$title = $attributes['title'] ?? $post->post_title;
 		$description = $attributes['description'] ?? $post->post_excerpt;
-
+		$title = "Legacy Tattoo Removal";
+		$description="A video of Madi Rawson performing laser tattoo removal treatments.";
 		// If no video sources, return empty
 		if (empty($video_sources)) {
 			return '';
@@ -78,7 +84,7 @@
             "uploadDate": "'.$date.'"
         }
     </script>
-    <div class="wrap">
+    <div class="wrap abs edges">
         <div class="video-container">';
 		$html .= '<video';
 		$html .= ' muted loop playsinline autoplay';
@@ -87,13 +93,13 @@
 			$html .= ' poster="' . esc_url($poster_url) . '"';
 		}
 
-		$html .= '>';
+		$html .= ' fetch-priority="high">';
 
 		// Add mobile sources first (lower resolution)
 		foreach ($mobile_sources as $source) {
 			if (!empty($source['url']) && !empty($source['mime'])) {
 				$html .= '<source';
-				$html .= ' src="' . esc_url($source['url']) . '"';
+				$html .= ' data-src="' . esc_url($source['url']) . '"';
 				$html .= ' type="' . esc_attr($source['mime']) . '"';
 				$html .= ' media="(max-width: 767px)"';
 				$html .= '>';
@@ -104,7 +110,7 @@
 		foreach ($video_sources as $source) {
 			if (!empty($source['url']) && !empty($source['mime'])) {
 				$html .= '<source';
-				$html .= ' src="' . esc_url($source['url']) . '"';
+				$html .= ' data-src="' . esc_url($source['url']) . '"';
 				$html .= ' type="' . esc_attr($source['mime']) . '"';
 
 				// Add media query for desktop if mobile sources exist
@@ -117,8 +123,27 @@
 		}
 
 		$html .= '</video>';
-		$html .= '</div></div><div class="inner-wrap"></div></section>';
+
+		$inner_content = $this->extractInnerContent($content);
+		$html .= '</div></div><div class="inner-wrap">'.$inner_content.'</div></section>';
 
 		return $html;
 	}
+
+	/**
+	 * Extract inner content from the saved block content
+	 * Removes the wrapper div and returns just the inner blocks HTML
+	 */
+	protected function extractInnerContent(string $content): string
+	{
+		if (empty($content)) {
+			return '';
+		}
+
+		// Remove the placeholder wrapper div
+		$content = preg_replace('/<div[^>]*class="[^"]*video-cover-wrapper-placeholder[^"]*"[^>]*>/', '', $content, 1);
+		$content = preg_replace('/<\/div>\s*$/', '', $content, 1);
+
+		return trim($content);
+	}
 }

--
Gitblit v1.10.0