initial
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Programmatically set a React-controlled textarea's value.
|
||||
* Uses the native setter so React's synthetic onChange fires.
|
||||
*
|
||||
* @param {HTMLTextAreaElement} textarea - The textarea element.
|
||||
* @param {string} value - The new value.
|
||||
*/
|
||||
export function setTextareaValue( textarea, value ) {
|
||||
const setter = Object.getOwnPropertyDescriptor(
|
||||
window.HTMLTextAreaElement.prototype,
|
||||
'value'
|
||||
).set;
|
||||
setter.call( textarea, value );
|
||||
textarea.dispatchEvent( new Event( 'input', { bubbles: true } ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Accept a block suggestion: write text to the modal textarea and clear the store.
|
||||
*
|
||||
* @param {HTMLElement} blockModal - The block guideline modal element.
|
||||
* @param {string} blockName - Block name key in the store.
|
||||
* @param {string} suggestion - Suggestion text to write.
|
||||
* @param {Function} clearSuggestion - Store action to clear the suggestion.
|
||||
*/
|
||||
export function acceptBlockSuggestion( blockModal, blockName, suggestion, clearSuggestion ) {
|
||||
const textarea = blockModal?.querySelector( '.components-textarea-control__input' );
|
||||
if ( textarea ) {
|
||||
setTextareaValue( textarea, suggestion );
|
||||
}
|
||||
clearSuggestion( blockName );
|
||||
}
|
||||
Reference in New Issue
Block a user