refactor: remove unnecessary state changes

This commit is contained in:
sasanktumpati
2024-12-07 15:52:18 +05:30
parent 036bac311c
commit edd69b986a
4 changed files with 18 additions and 21 deletions

View File

@ -468,5 +468,6 @@ const kNullResponseModelError = "Error: Response data does not exist.";
const kMsgNullBody = "Response body is missing (null).";
const kMsgNoContent = "No content";
const kMsgUnknowContentType = "Unknown Response Content-Type";
const kMsgRequestCancelled = 'Request Cancelled';
// Workspace Selector
const kMsgSelectWorkspace = "Create your workspace";

View File

@ -24,13 +24,16 @@ final requestSequenceProvider = StateProvider<List<String>>((ref) {
return ids ?? [];
});
final httpClientManager = HttpClientManager();
final StateNotifierProvider<CollectionStateNotifier, Map<String, RequestModel>?>
collectionStateNotifierProvider =
StateNotifierProvider((ref) => CollectionStateNotifier(ref, hiveHandler));
collectionStateNotifierProvider = StateNotifierProvider(
(ref) => CollectionStateNotifier(ref, hiveHandler, httpClientManager));
class CollectionStateNotifier
extends StateNotifier<Map<String, RequestModel>?> {
CollectionStateNotifier(this.ref, this.hiveHandler) : super(null) {
CollectionStateNotifier(this.ref, this.hiveHandler, this.httpClientManager)
: super(null) {
var status = loadData();
Future.microtask(() {
if (status) {
@ -46,6 +49,7 @@ class CollectionStateNotifier
final Ref ref;
final HiveHandler hiveHandler;
final baseResponseModel = const HttpResponseModel();
final HttpClientManager httpClientManager;
bool hasId(String id) => state?.keys.contains(id) ?? false;
@ -237,11 +241,15 @@ class CollectionStateNotifier
Future<void> sendRequest(String id) async {
ref.read(codePaneVisibleStateProvider.notifier).state = false;
final defaultUriScheme = ref.read(
settingsProvider.select((value) => value.defaultUriScheme),
settingsProvider.select(
(value) => value.defaultUriScheme,
),
);
RequestModel requestModel = state![id]!;
if (requestModel.httpRequestModel == null) return;
if (requestModel.httpRequestModel == null) {
return;
}
HttpRequestModel substitutedHttpRequestModel =
getSubstitutedHttpRequestModel(requestModel.httpRequestModel!);
@ -261,11 +269,12 @@ class CollectionStateNotifier
late final RequestModel newRequestModel;
if (responseRec.$1 == null) {
if (responseRec.$3 == 'Request cancelled') {
if (responseRec.$3 == kMsgRequestCancelled) {
newRequestModel = requestModel.copyWith(
responseStatus: null,
message: responseRec.$3,
message: kMsgRequestCancelled,
isWorking: false,
httpResponseModel: null,
);
} else {
newRequestModel = requestModel.copyWith(
@ -311,20 +320,8 @@ class CollectionStateNotifier
ref.read(hasUnsavedChangesProvider.notifier).state = true;
}
final httpClientManager = HttpClientManager();
void cancelRequest(String id) {
httpClientManager.cancelRequest(id);
var currentModel = state![id]!;
var map = {...state!};
map[id] = currentModel.copyWith(
isWorking: false,
message: 'Request Cancelled',
responseStatus: null,
httpResponseModel: null,
);
state = map;
ref.read(hasUnsavedChangesProvider.notifier).state = true;
}
Future<void> clearData() async {

View File

@ -27,7 +27,6 @@ class ResponsePane extends ConsumerWidget {
if (responseStatus == null) {
return const NotSentWidget();
}
if (responseStatus == -1) {
return ErrorMessage(message: '$message. $kUnexpectedRaiseIssue');
}

View File

@ -107,7 +107,7 @@ Future<(HttpResponse?, Duration?, String?)> request(
return (response, stopwatch.elapsed, null);
} on http.ClientException catch (e) {
if (e.message.contains('Connection closed') ||
e.message.contains('abort')) {
e.message.contains('Connection attempt cancelled')) {
return (null, null, 'Request Cancelled');
} else {
return (null, null, e.toString());