@@ -275,16 +275,6 @@ extension PromptToCodePanel {
275275 . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
276276 }
277277 }
278-
279- WithViewStore ( store, observe: { $0. commandName } ) { viewStore in
280- if let name = viewStore. state {
281- Text ( name)
282- . font ( . footnote)
283- . foregroundColor ( . secondary)
284- . padding ( . top, 12 )
285- . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
286- }
287- }
288278 }
289279 }
290280 . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
@@ -300,8 +290,9 @@ extension PromptToCodePanel {
300290 var canRevert : Bool
301291 }
302292
303- struct Prompt : Equatable {
293+ struct InputFieldState : Equatable {
304294 @BindingViewState var prompt : String
295+ var isResponding : Bool
305296 }
306297
307298 var body : some View {
@@ -366,7 +357,10 @@ extension PromptToCodePanel {
366357 }
367358
368359 var inputField : some View {
369- WithViewStore ( store, observe: { Prompt ( prompt: $0. $prompt) } ) { viewStore in
360+ WithViewStore (
361+ store,
362+ observe: { InputFieldState ( prompt: $0. $prompt, isResponding: $0. isResponding) }
363+ ) { viewStore in
370364 ZStack ( alignment: . center) {
371365 // a hack to support dynamic height of TextEditor
372366 Text ( viewStore. state. prompt. isEmpty ? " Hi " : viewStore. state. prompt)
@@ -380,10 +374,13 @@ extension PromptToCodePanel {
380374 CustomTextEditor (
381375 text: viewStore. $prompt,
382376 font: . systemFont( ofSize: 14 ) ,
377+ isEditable: !viewStore. state. isResponding,
383378 onSubmit: { viewStore. send ( . modifyCodeButtonTapped) }
384379 )
385380 . padding ( . top, 1 )
386381 . padding ( . bottom, - 1 )
382+ . opacity ( viewStore. state. isResponding ? 0.5 : 1 )
383+ . disabled ( viewStore. state. isResponding)
387384 }
388385 }
389386 . focused ( $isInputAreaFocused)
0 commit comments