mirror of
https://github.com/foss42/apidash.git
synced 2025-06-02 07:46:10 +08:00
refactor: remove unnecessary state changes
This commit is contained in:
@ -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";
|
||||
|
@ -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 {
|
||||
|
@ -27,7 +27,6 @@ class ResponsePane extends ConsumerWidget {
|
||||
if (responseStatus == null) {
|
||||
return const NotSentWidget();
|
||||
}
|
||||
|
||||
if (responseStatus == -1) {
|
||||
return ErrorMessage(message: '$message. $kUnexpectedRaiseIssue');
|
||||
}
|
||||
|
@ -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());
|
||||
|
Reference in New Issue
Block a user