/** * WordPress dependencies */ import { dispatch } from '@safe-wordpress/data'; import domReady from '@wordpress/dom-ready'; /** * Internal dependencies */ export * from './individual-settings'; import { store as NC_AUTOMATION_SETTINGS } from '../automations/store'; import './style.scss'; // ===== // START // ===== domReady( () => { const form = document.getElementById( 'nelio-content-settings-form' ); form?.addEventListener( 'keypress', preventSubmissionOnEnter ); form?.addEventListener( 'submit', markAsFormSaving ); } ); // ======= // HELPERS // ======= async function markAsFormSaving() { await dispatch( NC_AUTOMATION_SETTINGS ).markAsSaving( true ); } function preventSubmissionOnEnter( ev: KeyboardEvent ) { if ( ! ev ) { return; } const target = ( ev.target || ev.srcElement ) as HTMLElement | null; if ( ! target || 'submit' === target.id ) { return; } const textarea = /textarea/i.test( target.tagName ); if ( textarea ) { return; } const keyCode = ev.keyCode || ev.which || ev.charCode || 0; if ( keyCode !== 13 ) { return; } ev.preventDefault(); }