@@ -32,13 +32,16 @@ interface AIQueryInputProps {
3232 onQueryGenerated : ( query : string ) => void ;
3333 /** Set this to a prompt to auto-populate and immediately submit */
3434 autoSubmitPrompt ?: string ;
35+ /** Change this to force re-submission even if prompt is the same */
36+ autoSubmitKey ?: number ;
3537 /** Get the current query in the editor (used for edit mode) */
3638 getCurrentQuery ?: ( ) => string ;
3739}
3840
3941export function AIQueryInput ( {
4042 onQueryGenerated,
4143 autoSubmitPrompt,
44+ autoSubmitKey,
4245 getCurrentQuery,
4346} : AIQueryInputProps ) {
4447 const [ prompt , setPrompt ] = useState ( "" ) ;
@@ -50,7 +53,7 @@ export function AIQueryInput({
5053 const [ lastResult , setLastResult ] = useState < "success" | "error" | null > ( null ) ;
5154 const textareaRef = useRef < HTMLTextAreaElement > ( null ) ;
5255 const abortControllerRef = useRef < AbortController | null > ( null ) ;
53- const lastAutoSubmitRef = useRef < string | null > ( null ) ;
56+ const lastAutoSubmitRef = useRef < { prompt : string ; key ?: number } | null > ( null ) ;
5457
5558 const organization = useOrganization ( ) ;
5659 const project = useProject ( ) ;
@@ -197,19 +200,22 @@ export function AIQueryInput({
197200 [ prompt , submitQuery ]
198201 ) ;
199202
200- // Auto-submit when autoSubmitPrompt changes
203+ // Auto-submit when autoSubmitPrompt or autoSubmitKey changes
201204 useEffect ( ( ) => {
202- if (
203- autoSubmitPrompt &&
204- autoSubmitPrompt . trim ( ) &&
205- autoSubmitPrompt !== lastAutoSubmitRef . current &&
206- ! isLoading
207- ) {
208- lastAutoSubmitRef . current = autoSubmitPrompt ;
205+ if ( ! autoSubmitPrompt || ! autoSubmitPrompt . trim ( ) || isLoading ) {
206+ return ;
207+ }
208+
209+ const last = lastAutoSubmitRef . current ;
210+ const isDifferent =
211+ last === null || autoSubmitPrompt !== last . prompt || autoSubmitKey !== last . key ;
212+
213+ if ( isDifferent ) {
214+ lastAutoSubmitRef . current = { prompt : autoSubmitPrompt , key : autoSubmitKey } ;
209215 setPrompt ( autoSubmitPrompt ) ;
210216 submitQuery ( autoSubmitPrompt ) ;
211217 }
212- } , [ autoSubmitPrompt , isLoading , submitQuery ] ) ;
218+ } , [ autoSubmitPrompt , autoSubmitKey , isLoading , submitQuery ] ) ;
213219
214220 // Cleanup on unmount
215221 useEffect ( ( ) => {
0 commit comments