diff --git a/frontend/lib/viewmodels/task_viewmodel.dart b/frontend/lib/viewmodels/task_viewmodel.dart index eca6554e..61187a76 100644 --- a/frontend/lib/viewmodels/task_viewmodel.dart +++ b/frontend/lib/viewmodels/task_viewmodel.dart @@ -20,6 +20,10 @@ class TaskViewModel with ChangeNotifier { Task? _selectedTask; TestSuite? _selectedTestSuite; + bool _isWaitingForAgentResponse = false; + + bool get isWaitingForAgentResponse => _isWaitingForAgentResponse; + TaskViewModel(this._taskService, this._prefsService); /// Returns the currently selected task. @@ -28,6 +32,8 @@ class TaskViewModel with ChangeNotifier { /// Adds a task and returns its ID. Future createTask(String title) async { + _isWaitingForAgentResponse = true; + notifyListeners(); try { final newTask = TaskRequestBody(input: title); // Add to data source @@ -45,6 +51,9 @@ class TaskViewModel with ChangeNotifier { } catch (e) { // TODO: We are bubbling up the full response. Revisit this. rethrow; + } finally { + _isWaitingForAgentResponse = false; + notifyListeners(); } } diff --git a/frontend/lib/views/chat/chat_view.dart b/frontend/lib/views/chat/chat_view.dart index 5d34bf52..9e28f684 100644 --- a/frontend/lib/views/chat/chat_view.dart +++ b/frontend/lib/views/chat/chat_view.dart @@ -64,7 +64,7 @@ class _ChatViewState extends State { @override Widget build(BuildContext context) { // TODO: Do we want to have a reference to task view model in this class? - final taskViewModel = Provider.of(context, listen: false); + final taskViewModel = Provider.of(context, listen: true); return Scaffold( body: Column( children: [ @@ -105,7 +105,8 @@ class _ChatViewState extends State { LoadingIndicator( isLoading: Provider.of(context, listen: true) .isBenchmarkRunning || - widget.viewModel.isWaitingForAgentResponse), + widget.viewModel.isWaitingForAgentResponse || + taskViewModel.isWaitingForAgentResponse), const SizedBox(height: 10), // Input area Padding(