44 */
55
66import type { AgentSettings , FormFulfillments } from 'agentstack-sdk' ;
7- import { type PropsWithChildren , useCallback , useEffect , useState } from 'react' ;
7+ import { type PropsWithChildren , useCallback , useEffect , useRef , useState } from 'react' ;
88
99import type { AgentA2AClient } from '#api/a2a/types.ts' ;
1010import { useApp } from '#contexts/App/index.ts' ;
@@ -32,7 +32,7 @@ export function AgentDemandsProvider<UIGenericPart>({
3232
3333 const [ selectedEmbeddingProviders , setSelectedEmbeddingProviders ] = useState < Record < string , string > > ( { } ) ;
3434 const [ selectedLLMProviders , setSelectedLLMProviders ] = useState < Record < string , string > > ( { } ) ;
35- const [ formFulfillments , setFormFulfillments ] = useState < FormFulfillments > ( { form_fulfillments : { } } ) ;
35+ const formFulfillmentsRef = useRef < FormFulfillments > ( { form_fulfillments : { } } ) ;
3636
3737 const [ selectedSettings , setSelectedSettings ] = useState < AgentSettings > (
3838 getSettingsDemandsDefaultValues ( agentClient . demands . settingsDemands ?? { fields : [ ] } ) ,
@@ -109,15 +109,14 @@ export function AgentDemandsProvider<UIGenericPart>({
109109 [ setSelectedEmbeddingProviders ] ,
110110 ) ;
111111
112- const provideFormValues = useCallback (
113- ( values : RunFormValues ) => {
114- setFormFulfillments ( ( prev ) => {
115- prev . form_fulfillments [ 'initial_form' ] = { values } ;
116- return prev ;
117- } ) ;
118- } ,
119- [ setFormFulfillments ] ,
120- ) ;
112+ const provideFormValues = useCallback ( ( values : RunFormValues ) => {
113+ formFulfillmentsRef . current = {
114+ form_fulfillments : {
115+ ...formFulfillmentsRef . current . form_fulfillments ,
116+ initial_form : { values } ,
117+ } ,
118+ } ;
119+ } , [ ] ) ;
121120
122121 const [ selectedMCPServers , setSelectedMCPServers ] = useState < Record < string , string > > ( { } ) ;
123122
@@ -196,7 +195,7 @@ export function AgentDemandsProvider<UIGenericPart>({
196195 providedSecrets,
197196 featureFlags,
198197 selectedSettings,
199- formFulfillments,
198+ formFulfillments : formFulfillmentsRef . current ,
200199 oauthRedirectUri : fulfillmentsContext . oauthRedirectUri ?? null ,
201200 } ) ;
202201 } ,
@@ -208,7 +207,6 @@ export function AgentDemandsProvider<UIGenericPart>({
208207 featureFlags ,
209208 selectedSettings ,
210209 demandedSecrets ,
211- formFulfillments ,
212210 ] ,
213211 ) ;
214212
0 commit comments