diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-includes/js/dist/script-modules/block-library/form/view.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/wp-includes/js/dist/script-modules/block-library/form/view.js Fri Sep 05 18:52:52 2025 +0200 @@ -0,0 +1,49 @@ +var __webpack_exports__ = {}; +/* wp:polyfill */ +let formSettings; +try { + formSettings = JSON.parse(document.getElementById('wp-script-module-data-@wordpress/block-library/form/view')?.textContent); +} catch {} + +// eslint-disable-next-line eslint-comments/disable-enable-pair +/* eslint-disable no-undef */ +document.querySelectorAll('form.wp-block-form').forEach(function (form) { + // Bail If the form settings not provided or the form is not using the mailto: action. + if (!formSettings || !form.action || !form.action.startsWith('mailto:')) { + return; + } + const redirectNotification = status => { + const urlParams = new URLSearchParams(window.location.search); + urlParams.append('wp-form-result', status); + window.location.search = urlParams.toString(); + }; + + // Add an event listener for the form submission. + form.addEventListener('submit', async function (event) { + event.preventDefault(); + // Get the form data and merge it with the form action and nonce. + const formData = Object.fromEntries(new FormData(form).entries()); + formData.formAction = form.action; + formData._ajax_nonce = formSettings.nonce; + formData.action = formSettings.action; + formData._wp_http_referer = window.location.href; + formData.formAction = form.action; + try { + const response = await fetch(formSettings.ajaxUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams(formData).toString() + }); + if (response.ok) { + redirectNotification('success'); + } else { + redirectNotification('error'); + } + } catch (error) { + redirectNotification('error'); + } + }); +}); +