<?php

namespace Lknwp\CrowdfundingExtension\Admin;

use Lknwp\CrowdfundingExtension\Includes\LknwpCrowdfundingExtensionHelper;

final class LknwpCrowdfundingExtensionAdmin
{
    /**
     * The ID of this plugin.
     *
     * @since    1.0.0
     * @access   private
     * @var      string    $plugin_name    The ID of this plugin.
     */
    private $plugin_name;

    /**
     * The version of this plugin.
     *
     * @since    1.0.0
     * @access   private
     * @var      string    $version    The current version of this plugin.
     */
    private $version;

    /**
     * Initialize the class and set its properties.
     *
     * @since    1.0.0
     * @param      string    $plugin_name       The name of this plugin.
     * @param      string    $version    The version of this plugin.
     */
    public function __construct($plugin_name, $version)
    {
        $this->plugin_name = $plugin_name;
        $this->version = $version;
    }

    /**
     * Register the stylesheets for the admin area.
     *
     * @since    1.0.0
     */
    public function enqueue_styles(): void
    {
        /**
         * This function is provided for demonstration purposes only.
         *
         * An instance of this class should be passed to the run() function
         * defined in Lkn_Wp_Crowdfunding_Extension_Loader as all of the hooks are defined
         * in that particular class.
         *
         * The Lkn_Wp_Crowdfunding_Extension_Loader will then create the relationship
         * between the defined hooks and the functions defined in this
         * class.
         */
        wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/lknwpCrowdfundingExtensionAdmin.css', array(), $this->version, 'all');

        // phpcs:ignore WordPress.Security.NonceVerification.Recommended
        if (isset($_GET['tab']) && sanitize_text_field(wp_unslash($_GET['tab'])) === 'Lkn Extension Settings') {
            wp_enqueue_style(
                'lkn-style-settings-tab',
                plugin_dir_url(__FILE__) . 'css/lknwpCrowdfundingExtensionSettingsTab.css',
                array(),
                $this->version,
                'all'
            );
        }

        wp_register_style(
            'lknWpCrowdfundingElementor',
            plugin_dir_url(__FILE__) . 'css/lknwpCrowdfundingExtensionElementor.css',
            array(),
            $this->version,
            'all'
        );

        if (class_exists('Elementor\Plugin') && did_action('elementor/loaded')) {
            if (! \Elementor\Plugin::$instance->editor->is_edit_mode()) {
                wp_enqueue_style('lknWpCrowdfundingElementor');
            }
        }

    }

    /**
     * Register the JavaScript for the admin area.
     *
     * @since    1.0.0
     */
    public function enqueue_scripts(): void
    {
        /**
         * This function is provided for demonstration purposes only.
         *
         * An instance of this class should be passed to the run() function
         * defined in Lkn_Wp_Crowdfunding_Extension_Loader as all of the hooks are defined
         * in that particular class.
         *
         * The Lkn_Wp_Crowdfunding_Extension_Loader will then create the relationship
         * between the defined hooks and the functions defined in this
         * class.
         */

        wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/lknwpCrowdfundingExtensionAdmin.js', array('jquery'), $this->version, false);

        // phpcs:ignore WordPress.Security.NonceVerification.Recommended
        if (isset($_GET['tab']) && sanitize_text_field(wp_unslash($_GET['tab'])) === 'Lkn Extension Settings') {
            wp_enqueue_script(
                'lknwp-settings-tab',
                plugin_dir_url(__FILE__) . 'js/lknwpCrowdfundingExtensionSettingsTab.js',
                array(),
                $this->version,
                false
            );
        }

        if (class_exists('Elementor\Plugin') && did_action('elementor/loaded')) {
            wp_enqueue_script(
                'lknwp-elevate-zoom',
                plugin_dir_url(__FILE__) . 'js/ElevateZoom-3.0.8.min.js',
                array('jquery'),
                $this->version,
                false
            );

            wp_register_script(
                'lknWpCrowdfundingElementor',
                plugin_dir_url(__FILE__) . 'js/lknwpCrowdfundingExtensionElementor.js',
                array('jquery', 'lknwp-elevate-zoom'),
                $this->version,
                false
            );

            wp_localize_script(
                'lknWpCrowdfundingElementor',
                'lknWpCrowdfundingParams',
                LknwpCrowdfundingExtensionHelper::get_translations()
            );
        }
    }
}
