@@ -109,17 +109,6 @@ function showPromptModal(promptIndex) {
109
109
form . querySelector ( 'input[name="prompt_name"]' ) . value = promptName ;
110
110
form . querySelector ( 'input[name="prompt_args"]' ) . value = JSON . stringify ( args ) ;
111
111
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
-
123
112
// Submit the form
124
113
htmx . trigger ( form , 'submit' ) ;
125
114
@@ -227,8 +216,45 @@ document.addEventListener('DOMContentLoaded', function() {
227
216
}
228
217
}
229
218
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 } ) ;
233
259
}
234
260
} ) ;
0 commit comments