@@ -48,7 +48,7 @@ const CreateWorkspacePageExperimental: FC = () => {
48
48
const navigate = useNavigate ( ) ;
49
49
const [ searchParams ] = useSearchParams ( ) ;
50
50
51
- const [ currentResponse , setCurrentResponse ] =
51
+ const [ latestResponse , setLatestResponse ] =
52
52
useState < DynamicParametersResponse | null > ( null ) ;
53
53
const wsResponseId = useRef < number > ( - 1 ) ;
54
54
const ws = useRef < WebSocket | null > ( null ) ;
@@ -131,22 +131,17 @@ const CreateWorkspacePageExperimental: FC = () => {
131
131
} ,
132
132
) ;
133
133
134
- const onMessage = useCallback (
135
- ( response : DynamicParametersResponse ) => {
136
- setCurrentResponse ( ( prev ) => {
137
- if ( prev && prev ?. id >= response . id ) {
138
- return prev ;
139
- }
134
+ const onMessage = useEffectEvent ( ( response : DynamicParametersResponse ) => {
135
+ if ( latestResponse && latestResponse ?. id >= response . id ) {
136
+ return ;
137
+ }
140
138
141
- if ( ! initialParamsSentRef . current && response . parameters . length > 0 ) {
142
- sendInitialParameters ( [ ...response . parameters ] ) ;
143
- }
139
+ if ( ! initialParamsSentRef . current && response . parameters . length > 0 ) {
140
+ sendInitialParameters ( [ ...response . parameters ] ) ;
141
+ }
144
142
145
- return response ;
146
- } ) ;
147
- } ,
148
- [ sendInitialParameters ] ,
149
- ) ;
143
+ setLatestResponse ( response ) ;
144
+ } ) ;
150
145
151
146
// Initialize the WebSocket connection when there is a valid template version ID
152
147
useEffect ( ( ) => {
@@ -269,18 +264,18 @@ const CreateWorkspacePageExperimental: FC = () => {
269
264
} , [ automateWorkspaceCreation , autoCreateReady ] ) ;
270
265
271
266
const sortedParams = useMemo ( ( ) => {
272
- if ( ! currentResponse ?. parameters ) {
267
+ if ( ! latestResponse ?. parameters ) {
273
268
return [ ] ;
274
269
}
275
- return [ ...currentResponse . parameters ] . sort ( ( a , b ) => a . order - b . order ) ;
276
- } , [ currentResponse ?. parameters ] ) ;
270
+ return [ ...latestResponse . parameters ] . sort ( ( a , b ) => a . order - b . order ) ;
271
+ } , [ latestResponse ?. parameters ] ) ;
277
272
278
273
return (
279
274
< >
280
275
< Helmet >
281
276
< title > { pageTitle ( title ) } </ title >
282
277
</ Helmet >
283
- { ! currentResponse ||
278
+ { ! latestResponse ||
284
279
! templateQuery . data ||
285
280
isLoadingFormData ||
286
281
isLoadingExternalAuth ||
@@ -290,7 +285,7 @@ const CreateWorkspacePageExperimental: FC = () => {
290
285
< CreateWorkspacePageViewExperimental
291
286
mode = { mode }
292
287
defaultName = { defaultName }
293
- diagnostics = { currentResponse ?. diagnostics ?? [ ] }
288
+ diagnostics = { latestResponse ?. diagnostics ?? [ ] }
294
289
disabledParams = { disabledParams }
295
290
defaultOwner = { defaultOwner }
296
291
owner = { owner }
0 commit comments