<?php
/**
 * Gravity Forms — live "Review Information" step without any add-on.
 *
 * Loads a tiny script + stylesheet on any page that renders a Gravity Form.
 * The script (assets/bw-gf-review.js) looks for a `<div class="bw-review">`
 * container — placed inside a Gravity Forms HTML field on the LAST page of a
 * multi-page form — and fills it with a read-only summary of every visible,
 * filled field, updated on each page step. See that file for details.
 *
 * Reusable across forms: any form whose last page has the .bw-review container
 * gets a review step. Exclude a field with the CSS class `bw-review-exclude`.
 *
 * @package Kadence-Child
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/*
 * gform_enqueue_scripts fires whenever Gravity Forms enqueues its assets for a
 * form on the page, so our assets only load where a form actually renders.
 */
add_action(
	'gform_enqueue_scripts',
	function () {
		$dir = get_stylesheet_directory();
		$uri = get_stylesheet_directory_uri();

		$css = $dir . '/assets/bw-gf-review.css';
		if ( file_exists( $css ) ) {
			wp_enqueue_style(
				'bw-gf-review',
				$uri . '/assets/bw-gf-review.css',
				array(),
				filemtime( $css )
			);
		}

		$js = $dir . '/assets/bw-gf-review.js';
		if ( file_exists( $js ) ) {
			wp_enqueue_script(
				'bw-gf-review',
				$uri . '/assets/bw-gf-review.js',
				array( 'jquery' ), // GF fires its page events as jQuery events.
				filemtime( $js ),
				true
			);
		}

		// Multi-page progress rendered as dots in the footer nav row
		// (see assets/bw-gf-dots.{css,js}). Needs Progress Indicator = "Steps".
		$dots_css = $dir . '/assets/bw-gf-dots.css';
		if ( file_exists( $dots_css ) ) {
			wp_enqueue_style(
				'bw-gf-dots',
				$uri . '/assets/bw-gf-dots.css',
				array(),
				filemtime( $dots_css )
			);
		}

		$dots_js = $dir . '/assets/bw-gf-dots.js';
		if ( file_exists( $dots_js ) ) {
			wp_enqueue_script(
				'bw-gf-dots',
				$uri . '/assets/bw-gf-dots.js',
				array( 'jquery' ),
				filemtime( $dots_js ),
				true
			);
		}
	}
);
