capabilities_service = $capabilities_service; } /** * Enqueue admin assets. * * @param string $hook_suffix Current admin screen hook suffix. */ public function enqueue_admin_assets(string $hook_suffix = ''): void { if (!$this->capabilities_service->can_use_selector() && !$this->capabilities_service->can_manage_settings()) { return; } // Overlay styles and the review notice are used on every admin screen. wp_enqueue_style( 'adsd-style', plugin_dir_url(\ADSD_PLUGIN_FILE) . 'build/css/style.min.css', [], ADSD_PLUGIN_VERSION ); if ($hook_suffix !== self::SETTINGS_SCREEN_ID) { return; } wp_enqueue_style( 'adsd-admin-style', plugin_dir_url(\ADSD_PLUGIN_FILE) . 'build/css/admin-settings-style.min.css', [], ADSD_PLUGIN_VERSION ); wp_enqueue_script( 'adsd-admin-settings', plugin_dir_url(\ADSD_PLUGIN_FILE) . 'build/js/admin-settings.js', ['jquery', 'wp-util'], ADSD_PLUGIN_VERSION, true ); // The settings screen talks to the REST API, same as the selector app. wp_localize_script('adsd-admin-settings', 'ADSD_CONFIG', [ 'rest_url' => rest_url('adsd/v1'), 'nonce' => wp_create_nonce('wp_rest'), ]); } }