<?php
/** Product List Block
 *
 * @package Bw-Winners-Network
 */

namespace BwWinnersNetwork;

if ( ! class_exists( __NAMESPACE__ . '\Product_List' ) ) {

	/**
	 * Register Product List Block
	 */
	class Product_List {

		/**
		 * Adds hooks.
		 */
		public function __construct() {
			add_action( 'init', [ $this, 'register_assets' ] );
		}

		/**
		 * Registers styles and scripts.
		 */
		public function register_assets() {

			// Product List Block

			$test = register_block_type(
				plugin_dir_path( PLUGIN_PATH ) . 'build/blocks/product-list',
				[
					'render_callback' => [ $this, 'block_render' ],
				]
			);


			// Product List Block View


			$asset_file = plugin_dir_path( PLUGIN_PATH ) . 'build/blocks/product-list/view/index.asset.php';
			
			if ( ! file_exists( $asset_file ) ) {
				error_log( 'Plugin assets not built: ' . $asset_file );
				return;
			}

			$settings = include $asset_file;

			wp_register_script(
				'bw-product-list',
				plugins_url( 'build/blocks/product-list/view/index.js', PLUGIN_PATH ),
				$settings['dependencies'],
				$settings['version'],
				[
					'in_footer' => true
				]
			);
			
			wp_register_style(
				'bw-product-list',
				plugins_url( 'build/blocks/product-list/view/index.css', PLUGIN_PATH ),
				[],
				$settings['version']
			);
		}

		function block_render ( $block_attributes, $content ) {
			if ( ! isset( $block_attributes['blockId'] ) ) return '';
			$id = str_replace( '-', '', $block_attributes['blockId'] );

			wp_enqueue_script( 'bw-product-list' );
			wp_enqueue_style( 'bw-product-list' );
			wp_localize_script( 'bw-product-list', 'bw_block_' . $id, $block_attributes );
			return sprintf('<div id="%s" class="bw-winner-product-list-block"></div>', $id );

		}
	}
}
