Skip to content

Commit

Permalink
fix for request selection
Browse files Browse the repository at this point in the history
  • Loading branch information
hrajwade96 committed Oct 4, 2024
1 parent da11a67 commit 941ec88
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ class NetworkController extends DisposableController
OfflineScreenControllerMixin,
AutoDisposeControllerMixin {
NetworkController() {
_initHelper();
_networkService = NetworkService(this);
_currentNetworkRequests = CurrentNetworkRequests();
_initHelper();
addAutoDisposeListener(
_currentNetworkRequests,
_filterAndRefreshSearchMatches,
Expand Down Expand Up @@ -197,14 +197,25 @@ class NetworkController extends DisposableController
}
}

void loadOfflineData(OfflineNetworkData offlineData) {
Future<void> loadOfflineData(OfflineNetworkData offlineData) async {
// Set filtered data to the requests available in offline data.
filteredData
..clear()
..addAll(offlineData.requests);

// If a selectedRequestId is available, select it in offline mode.
if (offlineData.selectedRequestId != null) {
selectedRequest.value =
_currentNetworkRequests.getRequest(offlineData.selectedRequestId!);
final selected = offlineData.getRequest(offlineData.selectedRequestId!);
if (selected != null) {
selectedRequest.value = selected;
if (selectedRequest.value is DartIOHttpRequestData) {
unawaited(
(selectedRequest.value as DartIOHttpRequestData)
.getFullRequestData(),
);
}
resetDropDown();
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:devtools_shared/devtools_shared.dart';

import '../../shared/http/http_request_data.dart';
import '../../shared/primitives/utils.dart';
import 'network_model.dart';

/// Class to encapsulate offline data for the [NetworkController].
/// It is responsible for serializing and deserializing offline network data.
Expand Down Expand Up @@ -40,6 +41,16 @@ class OfflineNetworkData with Serializable {
/// List of current [DartIOHttpRequestData] network requests.
final List<DartIOHttpRequestData> requests;

/// Get a request by matching its `id` field.
// Temporarily added to check selection in the filtered requests data,
// until we have current requests data in place
NetworkRequest? getRequest(String id) {
// Search through the list of requests and return the one with the matching ID.
return requests.firstWhere(
(request) => request.id == id,
);
}

/// The ID of the currently selected request, if any.
final String? selectedRequestId;

Expand Down

0 comments on commit 941ec88

Please sign in to comment.