PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / 1.6.1
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management v1.6.1
1.6.1 1.6.0 1.5.1 1.5.0 1.4.0 1.3.0 trunk 0.0.1 1.0.0 1.1.0 1.1.1 1.1.2 1.2.0
← All changes | inc/assets/register.php +97 -0 1.1.0 → 1.6.1 View file →
@@ -29,11 +29,38 @@
29 29 * @since 0.0.1
30 30 */
31 31 public function __construct() {
32 32 add_action( 'wp_enqueue_scripts', [ $this, 'register_frontend_assets' ] );
33 + // Progressive-enhancement gate: mark that JS is available before the body
34 + // paints, so enhanced fields (e.g. the dropdown) can hide their native
35 + // control and show a matching placeholder without a flash. The native
36 + // control stays visible when this class is absent (JS disabled/failed).
37 + add_action( 'wp_head', [ $this, 'print_js_gate' ], 1 );
33 38 }
34 39
35 40 /**
41 + * Print the progressive-enhancement gate inline in the head.
42 + *
43 + * A one-liner that adds the `suredonation-js` class to <html> synchronously,
44 + * before the body renders. The class only has a visual effect where a
45 + * SureDonation field stylesheet is loaded, so printing it on every front-end
46 + * page is harmless and keeps the fix independent of where forms are embedded.
47 + *
48 + * @return void
49 + * @since 1.1.1
50 + */
51 + public function print_js_gate() {
52 + if ( is_admin() ) {
53 + return;
54 + }
55 +
56 + wp_print_inline_script_tag(
57 + "document.documentElement.classList.add('suredonation-js');",
58 + [ 'id' => 'suredonation-js-gate' ]
59 + );
60 + }
61 +
62 + /**
36 63 * Register frontend assets.
37 64 *
38 65 * @return void
39 66 * @since 0.0.1
@@ -90,8 +117,78 @@
90 117 'suredonation-inputmask',
91 118 SUREDONATION_URL . 'assets/js/vendor/inputmask.min.js',
92 119 [],
93 120 SUREDONATION_VER,
121 + true
122 + );
123 +
124 + // Register the tom-select library (vendored) + its styles.
125 + // Enqueued conditionally by the dropdown block render only when present.
126 + wp_register_style(
127 + 'suredonation-tom-select',
128 + SUREDONATION_URL . 'assets/css/vendor/tom-select.css',
129 + [],
130 + SUREDONATION_VER
131 + );
132 +
133 + wp_register_script(
134 + 'suredonation-tom-select',
135 + SUREDONATION_URL . 'assets/js/vendor/tom-select.min.js',
136 + [],
137 + SUREDONATION_VER,
138 + true
139 + );
140 +
141 + // Register the dropdown initializer. Depends on tom-select so enqueuing
142 + // the dropdown handle pulls the library in, in the right order.
143 + $dropdown_asset_file = SUREDONATION_DIR . 'assets/build/blocks/dropdown/frontend.asset.php';
144 + $dropdown_asset = file_exists( $dropdown_asset_file )
145 + ? require $dropdown_asset_file
146 + : [
147 + 'dependencies' => [],
148 + 'version' => SUREDONATION_VER,
149 + ];
150 +
151 + wp_register_script(
152 + 'suredonation-dropdown',
153 + SUREDONATION_URL . 'assets/build/blocks/dropdown/frontend.js',
154 + array_merge( $dropdown_asset['dependencies'], [ 'suredonation-tom-select', 'wp-a11y' ] ),
155 + $dropdown_asset['version'],
156 + true
157 + );
158 +
159 + // Register the intl-tel-input library (vendored) + its styles.
160 + // Enqueued conditionally by the phone block render only when present.
161 + wp_register_style(
162 + 'suredonation-intl-tel-input',
163 + SUREDONATION_URL . 'assets/css/vendor/intl/intlTelInput.min.css',
164 + [],
165 + SUREDONATION_VER
166 + );
167 +
168 + wp_register_script(
169 + 'suredonation-intl-tel-input',
170 + SUREDONATION_URL . 'assets/js/vendor/intl/intTelInputWithUtils.min.js',
171 + [],
172 + SUREDONATION_VER,
173 + true
174 + );
175 +
176 + // Register the phone initializer. Depends on intl-tel-input so enqueuing
177 + // the phone handle pulls the library in, in the right order.
178 + $phone_asset_file = SUREDONATION_DIR . 'assets/build/blocks/phone/frontend.asset.php';
179 + $phone_asset = file_exists( $phone_asset_file )
180 + ? require $phone_asset_file
181 + : [
182 + 'dependencies' => [],
183 + 'version' => SUREDONATION_VER,
184 + ];
185 +
186 + wp_register_script(
187 + 'suredonation-phone',
188 + SUREDONATION_URL . 'assets/build/blocks/phone/frontend.js',
189 + array_merge( $phone_asset['dependencies'], [ 'suredonation-intl-tel-input' ] ),
190 + $phone_asset['version'],
94 191 true
95 192 );
96 193 }
97 194 }