@@ -109,17 +109,6 @@ function showPromptModal(promptIndex) {
109109 form . querySelector ( 'input[name="prompt_name"]' ) . value = promptName ;
110110 form . querySelector ( 'input[name="prompt_args"]' ) . value = JSON . stringify ( args ) ;
111111
112- // Set up a one-time event listener for after the request completes
113- form . addEventListener ( 'htmx:afterRequest' , function afterRequest ( ) {
114- // Restore the required attribute and clear prompt fields
115- textarea . setAttribute ( 'required' , '' ) ;
116- form . querySelector ( 'input[name="prompt_name"]' ) . value = '' ;
117- form . querySelector ( 'input[name="prompt_args"]' ) . value = '' ;
118-
119- // Remove this event listener to prevent it from firing on future requests
120- form . removeEventListener ( 'htmx:afterRequest' , afterRequest ) ;
121- } , { once : true } ) ;
122-
123112 // Submit the form
124113 htmx . trigger ( form , 'submit' ) ;
125114
@@ -227,8 +216,45 @@ document.addEventListener('DOMContentLoaded', function() {
227216 }
228217 }
229218
230- // Clean up the resources list
231- if ( typeof resourcesList !== 'undefined' ) {
232- resourcesList = resourcesList . filter ( item => item !== undefined ) ;
219+ // Clear any prompt data on page load
220+ const isWelcomePage = document . getElementById ( 'chat-form-welcome' ) !== null ;
221+ const formId = isWelcomePage ? 'chat-form-welcome' : 'chat-form-chatbox' ;
222+ const form = document . getElementById ( formId ) ;
223+
224+ // Clear any attached resources on page load
225+ clearAttachedResources ( ) ;
226+
227+ if ( form ) {
228+ const promptNameInput = form . querySelector ( 'input[name="prompt_name"]' ) ;
229+ if ( promptNameInput ) promptNameInput . value = '' ;
230+
231+ const promptArgsInput = form . querySelector ( 'input[name="prompt_args"]' ) ;
232+ if ( promptArgsInput ) promptArgsInput . value = '' ;
233+ }
234+ } ) ;
235+
236+ document . addEventListener ( 'htmx:beforeRequest' , function ( event ) {
237+ const form = event . detail . elt ;
238+
239+ // Only process if this is one of our chat forms
240+ if ( form . id === 'chat-form-welcome' || form . id === 'chat-form-chatbox' ) {
241+ // Set up a one-time event listener for after the request completes
242+ form . addEventListener ( 'htmx:afterRequest' , function afterRequest ( ) {
243+ // Restore the required attribute and clear prompt fields
244+ const textarea = form . querySelector ( 'textarea[name="message"]' ) ;
245+ if ( textarea ) textarea . setAttribute ( 'required' , '' ) ;
246+
247+ const promptNameInput = form . querySelector ( 'input[name="prompt_name"]' ) ;
248+ if ( promptNameInput ) promptNameInput . value = '' ;
249+
250+ const promptArgsInput = form . querySelector ( 'input[name="prompt_args"]' ) ;
251+ if ( promptArgsInput ) promptArgsInput . value = '' ;
252+
253+ // Clear attached resources after submission
254+ clearAttachedResources ( ) ;
255+
256+ // Remove this event listener
257+ form . removeEventListener ( 'htmx:afterRequest' , afterRequest ) ;
258+ } , { once : true } ) ;
233259 }
234260} ) ;
0 commit comments