From c8f740f4de3c24bd7c89278be99d34e868a1df39 Mon Sep 17 00:00:00 2001 From: David Smith Date: Fri, 27 Sep 2024 15:05:43 -0400 Subject: [PATCH] `gcoai-stream-to-paragraph-field.js`: Updated with support for generating a first response when exiting the prompt field and populating as RTE-enabled Paragraph fields. --- gc-openai/gcoai-stream-to-paragraph-field.js | 31 +++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/gc-openai/gcoai-stream-to-paragraph-field.js b/gc-openai/gcoai-stream-to-paragraph-field.js index 46a7dce6e..f1ce4d566 100644 --- a/gc-openai/gcoai-stream-to-paragraph-field.js +++ b/gc-openai/gcoai-stream-to-paragraph-field.js @@ -15,21 +15,38 @@ * * 2. Update the variables to match your own field IDs. */ -var streamFieldId = 1; -var promptFieldId = 2; -var responseFieldId = 3; +var streamFieldId = 3; +var promptFieldId = 1; +var responseFieldId = 4; +var appendButtonFieldId = responseFieldId; var $streamFieldInput = $( `#input_GFFORMID_${streamFieldId}` ); var $streamButton = $streamFieldInput.parents( '.gfield' ).find( '.gcoai-trigger' ); $streamFieldInput.on( 'change', function() { - $( `#input_GFFORMID_${responseFieldId}` ).val( this.value ); + $input = $( `#input_GFFORMID_${responseFieldId}` ); + $input.val( this.value ); + if (window.tinyMCE) { + var tiny = tinyMCE.get( $input.attr( 'id' ) ); + if (tiny) { + tiny.setContent( this.value ); + } + } } ); -$streamButton +let $newButton = $streamButton .clone() .attr( 'style', 'margin-top: var(--gf-label-space-primary, 8px);' ) .on( 'click', function() { - $streamButton.trigger( 'click' ) + $streamButton.trigger( 'click' ); } ) - .insertAfter( $( `#input_GFFORMID_${promptFieldId}` ) ) + .insertAfter( $( `#input_GFFORMID_${appendButtonFieldId}` ) ); + +$wpEditor = $newButton.parents( '.wp-editor-container' ); +if ( $wpEditor.length ) { + $newButton.insertAfter( $wpEditor ); +} + +$( `#input_GFFORMID_${promptFieldId}` ).on( 'blur', function() { + $streamButton.trigger( 'click' ); +} );