aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-10 23:19:35 -0700
committerGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-10 23:19:35 -0700
commit57bcbdf45c6c1493a4e5f6a4e72594ea13c10f93 (patch)
tree5e060c369e690719e40febdd5161f4a4e4189a19 /frontend
parentRefactor ChatInputField to use SharedPreferencesService (diff)
downloadAuto-GPT-57bcbdf45c6c1493a4e5f6a4e72594ea13c10f93.tar.gz
Auto-GPT-57bcbdf45c6c1493a4e5f6a4e72594ea13c10f93.tar.bz2
Auto-GPT-57bcbdf45c6c1493a4e5f6a4e72594ea13c10f93.zip
Refactor LeaderboardSubmissionDialog to use SharedPreferencesService
Diffstat (limited to 'frontend')
-rw-r--r--frontend/lib/main.dart7
-rw-r--r--frontend/lib/viewmodels/task_queue_viewmodel.dart5
-rw-r--r--frontend/lib/views/task_queue/leaderboard_submission_dialog.dart30
-rw-r--r--frontend/lib/views/task_queue/task_queue_view.dart2
4 files changed, 29 insertions, 15 deletions
diff --git a/frontend/lib/main.dart b/frontend/lib/main.dart
index 0b50cce4a..8e0cac477 100644
--- a/frontend/lib/main.dart
+++ b/frontend/lib/main.dart
@@ -116,8 +116,11 @@ class MyApp extends StatelessWidget {
create: (context) => SkillTreeViewModel()),
ChangeNotifierProvider(
create: (context) => TaskQueueViewModel(
- Provider.of<BenchmarkService>(context, listen: false),
- Provider.of<LeaderboardService>(context, listen: false)),
+ Provider.of<BenchmarkService>(context, listen: false),
+ Provider.of<LeaderboardService>(context, listen: false),
+ Provider.of<SharedPreferencesService>(context,
+ listen: false),
+ ),
),
],
child: MainLayout(),
diff --git a/frontend/lib/viewmodels/task_queue_viewmodel.dart b/frontend/lib/viewmodels/task_queue_viewmodel.dart
index 42f840cd0..4ca270377 100644
--- a/frontend/lib/viewmodels/task_queue_viewmodel.dart
+++ b/frontend/lib/viewmodels/task_queue_viewmodel.dart
@@ -10,6 +10,7 @@ import 'package:auto_gpt_flutter_client/models/test_option.dart';
import 'package:auto_gpt_flutter_client/models/test_suite.dart';
import 'package:auto_gpt_flutter_client/services/benchmark_service.dart';
import 'package:auto_gpt_flutter_client/services/leaderboard_service.dart';
+import 'package:auto_gpt_flutter_client/services/shared_preferences_service.dart';
import 'package:auto_gpt_flutter_client/viewmodels/chat_viewmodel.dart';
import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart';
import 'package:collection/collection.dart';
@@ -20,6 +21,7 @@ import 'package:auto_gpt_flutter_client/utils/stack.dart';
class TaskQueueViewModel extends ChangeNotifier {
final BenchmarkService benchmarkService;
final LeaderboardService leaderboardService;
+ final SharedPreferencesService prefsService;
bool isBenchmarkRunning = false;
Map<SkillTreeNode, BenchmarkTaskStatus> benchmarkStatusMap = {};
List<BenchmarkRun> currentBenchmarkRuns = [];
@@ -29,7 +31,8 @@ class TaskQueueViewModel extends ChangeNotifier {
TestOption get selectedOption => _selectedOption;
List<SkillTreeNode>? get selectedNodeHierarchy => _selectedNodeHierarchy;
- TaskQueueViewModel(this.benchmarkService, this.leaderboardService);
+ TaskQueueViewModel(
+ this.benchmarkService, this.leaderboardService, this.prefsService);
void updateSelectedNodeHierarchyBasedOnOption(
TestOption selectedOption,
diff --git a/frontend/lib/views/task_queue/leaderboard_submission_dialog.dart b/frontend/lib/views/task_queue/leaderboard_submission_dialog.dart
index add0fba9b..bf169d143 100644
--- a/frontend/lib/views/task_queue/leaderboard_submission_dialog.dart
+++ b/frontend/lib/views/task_queue/leaderboard_submission_dialog.dart
@@ -1,14 +1,18 @@
import 'package:auto_gpt_flutter_client/constants/app_colors.dart';
import 'package:auto_gpt_flutter_client/utils/uri_utility.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class LeaderboardSubmissionDialog extends StatefulWidget {
final Function(String, String, String)? onSubmit;
+ // TODO: Create a view model for this class and remove the TaskQueueViewModel
+ final TaskQueueViewModel viewModel;
const LeaderboardSubmissionDialog({
Key? key,
this.onSubmit,
+ required this.viewModel,
}) : super(key: key);
@override
@@ -26,9 +30,6 @@ class _LeaderboardSubmissionDialogState
String? _repoUrlError;
String? _commitShaError;
-// TODO: Do we want this dialog to have the responsibiltiy of managing shared preferences?
- SharedPreferences? _prefs;
-
@override
void initState() {
super.initState();
@@ -36,12 +37,13 @@ class _LeaderboardSubmissionDialogState
}
Future<void> _initSharedPreferences() async {
- _prefs = await SharedPreferences.getInstance();
- setState(() {
- _teamNameController.text = _prefs!.getString('teamName') ?? '';
- _repoUrlController.text = _prefs!.getString('repoUrl') ?? '';
- _commitShaController.text = _prefs!.getString('commitSha') ?? '';
- });
+ // Using the SharedPreferencesService from the viewModel to get stored values
+ _teamNameController.text =
+ await widget.viewModel.prefsService.getString('teamName') ?? '';
+ _repoUrlController.text =
+ await widget.viewModel.prefsService.getString('repoUrl') ?? '';
+ _commitShaController.text =
+ await widget.viewModel.prefsService.getString('commitSha') ?? '';
}
void _validateAndSubmit() async {
@@ -87,9 +89,13 @@ class _LeaderboardSubmissionDialogState
}
Future<void> _saveToSharedPreferences() async {
- await _prefs!.setString('teamName', _teamNameController.text);
- await _prefs!.setString('repoUrl', _repoUrlController.text);
- await _prefs!.setString('commitSha', _commitShaController.text);
+ // Using the prefsService to save the values
+ await widget.viewModel.prefsService
+ .setString('teamName', _teamNameController.text);
+ await widget.viewModel.prefsService
+ .setString('repoUrl', _repoUrlController.text);
+ await widget.viewModel.prefsService
+ .setString('commitSha', _commitShaController.text);
}
@override
diff --git a/frontend/lib/views/task_queue/task_queue_view.dart b/frontend/lib/views/task_queue/task_queue_view.dart
index 11cdd1c4e..8d78f129f 100644
--- a/frontend/lib/views/task_queue/task_queue_view.dart
+++ b/frontend/lib/views/task_queue/task_queue_view.dart
@@ -13,6 +13,7 @@ import 'package:provider/provider.dart';
class TaskQueueView extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ // TODO: This should be injected instead
final viewModel = Provider.of<TaskQueueViewModel>(context);
// Node hierarchy
@@ -135,6 +136,7 @@ class TaskQueueView extends StatelessWidget {
viewModel.submitToLeaderboard(
teamName, repoUrl, commitSha);
},
+ viewModel: viewModel,
),
);
},