diff options
author | hunteraraujo <hunter_araujo@msn.com> | 2023-10-08 22:34:52 -0700 |
---|---|---|
committer | hunteraraujo <hunter_araujo@msn.com> | 2023-10-08 22:34:52 -0700 |
commit | 51ebe2407d1572c238b96b9b800abb8fc8dbb6b7 (patch) | |
tree | fb4fd911065dac668feaed2afeef960645339547 /frontend | |
parent | Remove duplicate functionality from SkillTreeViewModel (diff) | |
download | Auto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.tar.gz Auto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.tar.bz2 Auto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.zip |
Integrate TaskQueueViewModel throughout application
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/lib/main.dart | 5 | ||||
-rw-r--r-- | frontend/lib/models/benchmark/benchmark_task_status.dart | 1 | ||||
-rw-r--r-- | frontend/lib/views/chat/chat_view.dart | 3 | ||||
-rw-r--r-- | frontend/lib/views/side_bar/side_bar_view.dart | 17 | ||||
-rw-r--r-- | frontend/lib/views/skill_tree/tree_node_view.dart | 15 | ||||
-rw-r--r-- | frontend/lib/views/task_queue/task_queue_view.dart | 12 |
6 files changed, 38 insertions, 15 deletions
diff --git a/frontend/lib/main.dart b/frontend/lib/main.dart index 76b0564c4..da026b6bf 100644 --- a/frontend/lib/main.dart +++ b/frontend/lib/main.dart @@ -1,5 +1,6 @@ import 'package:auto_gpt_flutter_client/services/leaderboard_service.dart'; import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart'; import 'package:auto_gpt_flutter_client/views/auth/firebase_auth_view.dart'; import 'package:flutter/material.dart'; import 'views/main_layout.dart'; @@ -97,7 +98,9 @@ class MyApp extends StatelessWidget { create: (context) => TaskViewModel( Provider.of<TaskService>(context, listen: false))), ChangeNotifierProvider( - create: (context) => SkillTreeViewModel( + create: (context) => SkillTreeViewModel()), + ChangeNotifierProvider( + create: (context) => TaskQueueViewModel( Provider.of<BenchmarkService>(context, listen: false), Provider.of<LeaderboardService>(context, listen: false)), ), diff --git a/frontend/lib/models/benchmark/benchmark_task_status.dart b/frontend/lib/models/benchmark/benchmark_task_status.dart index c70147883..60f892a6d 100644 --- a/frontend/lib/models/benchmark/benchmark_task_status.dart +++ b/frontend/lib/models/benchmark/benchmark_task_status.dart @@ -1,3 +1,4 @@ +// TODO: Put more thought into task status vs. benchmark task status enum BenchmarkTaskStatus { notStarted, inProgress, diff --git a/frontend/lib/views/chat/chat_view.dart b/frontend/lib/views/chat/chat_view.dart index 68a2f73e0..f54d37c6a 100644 --- a/frontend/lib/views/chat/chat_view.dart +++ b/frontend/lib/views/chat/chat_view.dart @@ -1,6 +1,7 @@ import 'package:auto_gpt_flutter_client/models/message_type.dart'; import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart'; import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart'; import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart'; import 'package:auto_gpt_flutter_client/views/chat/agent_message_tile.dart'; import 'package:auto_gpt_flutter_client/views/chat/chat_input_field.dart'; @@ -103,7 +104,7 @@ class _ChatViewState extends State<ChatView> { ), const SizedBox(height: 10), LoadingIndicator( - isLoading: Provider.of<SkillTreeViewModel>(context, listen: true) + isLoading: Provider.of<TaskQueueViewModel>(context, listen: true) .isBenchmarkRunning || widget.viewModel.isWaitingForAgentResponse), const SizedBox(height: 10), diff --git a/frontend/lib/views/side_bar/side_bar_view.dart b/frontend/lib/views/side_bar/side_bar_view.dart index 7f224ca41..66f164c3d 100644 --- a/frontend/lib/views/side_bar/side_bar_view.dart +++ b/frontend/lib/views/side_bar/side_bar_view.dart @@ -1,5 +1,5 @@ import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart'; -import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -22,8 +22,8 @@ class SideBarView extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: should we pass this in as a dependency? - final skillTreeViewModel = - Provider.of<SkillTreeViewModel>(context, listen: true); + final taskQueueViewModel = + Provider.of<TaskQueueViewModel>(context, listen: true); return Material( child: ValueListenableBuilder( valueListenable: selectedViewNotifier, @@ -40,7 +40,7 @@ class SideBarView extends StatelessWidget { ? Colors.blue : Colors.black, icon: const Icon(Icons.chat), - onPressed: skillTreeViewModel.isBenchmarkRunning + onPressed: taskQueueViewModel.isBenchmarkRunning ? null : () => selectedViewNotifier.value = 'TaskView', ), @@ -52,7 +52,7 @@ class SideBarView extends StatelessWidget { ? Colors.blue : Colors.black, icon: const Icon(Icons.emoji_events), - onPressed: skillTreeViewModel.isBenchmarkRunning + onPressed: taskQueueViewModel.isBenchmarkRunning ? null : () => selectedViewNotifier.value = 'SkillTreeView', @@ -74,9 +74,10 @@ class SideBarView extends StatelessWidget { IconButton( splashRadius: 0.1, iconSize: 25, - icon: Icon(Icons.book, color: Color.fromRGBO(50, 120, 123, 1)), - onPressed: () => - _launchURL('https://aiedge.medium.com/autogpt-forge-e3de53cc58ec'), + icon: Icon(Icons.book, + color: Color.fromRGBO(50, 120, 123, 1)), + onPressed: () => _launchURL( + 'https://aiedge.medium.com/autogpt-forge-e3de53cc58ec'), tooltip: 'Learn how to build your own Agent', ), IconButton( diff --git a/frontend/lib/views/skill_tree/tree_node_view.dart b/frontend/lib/views/skill_tree/tree_node_view.dart index ee2471152..83534144a 100644 --- a/frontend/lib/views/skill_tree/tree_node_view.dart +++ b/frontend/lib/views/skill_tree/tree_node_view.dart @@ -1,5 +1,6 @@ import 'package:auto_gpt_flutter_client/models/skill_tree/skill_tree_node.dart'; import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -21,8 +22,18 @@ class _TreeNodeViewState extends State<TreeNodeView> { return GestureDetector( onTap: () { print('Node ${widget.node.id} clicked'); - Provider.of<SkillTreeViewModel>(context, listen: false) - .toggleNodeSelection(widget.node.id); + final taskQueueViewModel = + Provider.of<TaskQueueViewModel>(context, listen: false); + if (!taskQueueViewModel.isBenchmarkRunning) { + final skillTreeViewModel = + Provider.of<SkillTreeViewModel>(context, listen: false); + skillTreeViewModel.toggleNodeSelection(widget.node.id); + taskQueueViewModel.updateSelectedNodeHierarchyBasedOnOption( + taskQueueViewModel.selectedOption, + skillTreeViewModel.selectedNode, + skillTreeViewModel.skillTreeNodes, + skillTreeViewModel.skillTreeEdges); + } }, child: MouseRegion( onEnter: (_) => setState(() => _isHovering = true), diff --git a/frontend/lib/views/task_queue/task_queue_view.dart b/frontend/lib/views/task_queue/task_queue_view.dart index 256245a92..11cdd1c4e 100644 --- a/frontend/lib/views/task_queue/task_queue_view.dart +++ b/frontend/lib/views/task_queue/task_queue_view.dart @@ -1,18 +1,19 @@ import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_task_status.dart'; import 'package:auto_gpt_flutter_client/models/test_option.dart'; import 'package:auto_gpt_flutter_client/viewmodels/chat_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart'; import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart'; import 'package:auto_gpt_flutter_client/views/task_queue/leaderboard_submission_button.dart'; import 'package:auto_gpt_flutter_client/views/task_queue/leaderboard_submission_dialog.dart'; import 'package:auto_gpt_flutter_client/views/task_queue/test_suite_button.dart'; import 'package:flutter/material.dart'; -import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart'; import 'package:provider/provider.dart'; class TaskQueueView extends StatelessWidget { @override Widget build(BuildContext context) { - final viewModel = Provider.of<SkillTreeViewModel>(context); + final viewModel = Provider.of<TaskQueueViewModel>(context); // Node hierarchy final nodeHierarchy = viewModel.selectedNodeHierarchy ?? []; @@ -102,8 +103,13 @@ class TaskQueueView extends StatelessWidget { selectedOptionString: viewModel.selectedOption.description, onOptionSelected: (selectedOption) { print('Option Selected: $selectedOption'); + final skillTreeViewModel = + Provider.of<SkillTreeViewModel>(context, listen: false); viewModel.updateSelectedNodeHierarchyBasedOnOption( - TestOptionExtension.fromDescription(selectedOption)!); + TestOptionExtension.fromDescription(selectedOption)!, + skillTreeViewModel.selectedNode, + skillTreeViewModel.skillTreeNodes, + skillTreeViewModel.skillTreeEdges); }, onPlayPressed: (selectedOption) { print('Starting benchmark with option: $selectedOption'); |