mirror of
https://github.com/foss42/apidash.git
synced 2025-06-28 03:19:40 +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 kMsgNullBody = "Response body is missing (null).";
|
||||||
const kMsgNoContent = "No content";
|
const kMsgNoContent = "No content";
|
||||||
const kMsgUnknowContentType = "Unknown Response Content-Type";
|
const kMsgUnknowContentType = "Unknown Response Content-Type";
|
||||||
|
const kMsgRequestCancelled = 'Request Cancelled';
|
||||||
// Workspace Selector
|
// Workspace Selector
|
||||||
const kMsgSelectWorkspace = "Create your workspace";
|
const kMsgSelectWorkspace = "Create your workspace";
|
||||||
|
@ -24,13 +24,16 @@ final requestSequenceProvider = StateProvider<List<String>>((ref) {
|
|||||||
return ids ?? [];
|
return ids ?? [];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final httpClientManager = HttpClientManager();
|
||||||
|
|
||||||
final StateNotifierProvider<CollectionStateNotifier, Map<String, RequestModel>?>
|
final StateNotifierProvider<CollectionStateNotifier, Map<String, RequestModel>?>
|
||||||
collectionStateNotifierProvider =
|
collectionStateNotifierProvider = StateNotifierProvider(
|
||||||
StateNotifierProvider((ref) => CollectionStateNotifier(ref, hiveHandler));
|
(ref) => CollectionStateNotifier(ref, hiveHandler, httpClientManager));
|
||||||
|
|
||||||
class CollectionStateNotifier
|
class CollectionStateNotifier
|
||||||
extends StateNotifier<Map<String, RequestModel>?> {
|
extends StateNotifier<Map<String, RequestModel>?> {
|
||||||
CollectionStateNotifier(this.ref, this.hiveHandler) : super(null) {
|
CollectionStateNotifier(this.ref, this.hiveHandler, this.httpClientManager)
|
||||||
|
: super(null) {
|
||||||
var status = loadData();
|
var status = loadData();
|
||||||
Future.microtask(() {
|
Future.microtask(() {
|
||||||
if (status) {
|
if (status) {
|
||||||
@ -46,6 +49,7 @@ class CollectionStateNotifier
|
|||||||
final Ref ref;
|
final Ref ref;
|
||||||
final HiveHandler hiveHandler;
|
final HiveHandler hiveHandler;
|
||||||
final baseResponseModel = const HttpResponseModel();
|
final baseResponseModel = const HttpResponseModel();
|
||||||
|
final HttpClientManager httpClientManager;
|
||||||
|
|
||||||
bool hasId(String id) => state?.keys.contains(id) ?? false;
|
bool hasId(String id) => state?.keys.contains(id) ?? false;
|
||||||
|
|
||||||
@ -237,11 +241,15 @@ class CollectionStateNotifier
|
|||||||
Future<void> sendRequest(String id) async {
|
Future<void> sendRequest(String id) async {
|
||||||
ref.read(codePaneVisibleStateProvider.notifier).state = false;
|
ref.read(codePaneVisibleStateProvider.notifier).state = false;
|
||||||
final defaultUriScheme = ref.read(
|
final defaultUriScheme = ref.read(
|
||||||
settingsProvider.select((value) => value.defaultUriScheme),
|
settingsProvider.select(
|
||||||
|
(value) => value.defaultUriScheme,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
RequestModel requestModel = state![id]!;
|
RequestModel requestModel = state![id]!;
|
||||||
if (requestModel.httpRequestModel == null) return;
|
if (requestModel.httpRequestModel == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
HttpRequestModel substitutedHttpRequestModel =
|
HttpRequestModel substitutedHttpRequestModel =
|
||||||
getSubstitutedHttpRequestModel(requestModel.httpRequestModel!);
|
getSubstitutedHttpRequestModel(requestModel.httpRequestModel!);
|
||||||
@ -261,11 +269,12 @@ class CollectionStateNotifier
|
|||||||
|
|
||||||
late final RequestModel newRequestModel;
|
late final RequestModel newRequestModel;
|
||||||
if (responseRec.$1 == null) {
|
if (responseRec.$1 == null) {
|
||||||
if (responseRec.$3 == 'Request cancelled') {
|
if (responseRec.$3 == kMsgRequestCancelled) {
|
||||||
newRequestModel = requestModel.copyWith(
|
newRequestModel = requestModel.copyWith(
|
||||||
responseStatus: null,
|
responseStatus: null,
|
||||||
message: responseRec.$3,
|
message: kMsgRequestCancelled,
|
||||||
isWorking: false,
|
isWorking: false,
|
||||||
|
httpResponseModel: null,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
newRequestModel = requestModel.copyWith(
|
newRequestModel = requestModel.copyWith(
|
||||||
@ -311,20 +320,8 @@ class CollectionStateNotifier
|
|||||||
ref.read(hasUnsavedChangesProvider.notifier).state = true;
|
ref.read(hasUnsavedChangesProvider.notifier).state = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final httpClientManager = HttpClientManager();
|
|
||||||
|
|
||||||
void cancelRequest(String id) {
|
void cancelRequest(String id) {
|
||||||
httpClientManager.cancelRequest(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 {
|
Future<void> clearData() async {
|
||||||
|
@ -27,7 +27,6 @@ class ResponsePane extends ConsumerWidget {
|
|||||||
if (responseStatus == null) {
|
if (responseStatus == null) {
|
||||||
return const NotSentWidget();
|
return const NotSentWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseStatus == -1) {
|
if (responseStatus == -1) {
|
||||||
return ErrorMessage(message: '$message. $kUnexpectedRaiseIssue');
|
return ErrorMessage(message: '$message. $kUnexpectedRaiseIssue');
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ Future<(HttpResponse?, Duration?, String?)> request(
|
|||||||
return (response, stopwatch.elapsed, null);
|
return (response, stopwatch.elapsed, null);
|
||||||
} on http.ClientException catch (e) {
|
} on http.ClientException catch (e) {
|
||||||
if (e.message.contains('Connection closed') ||
|
if (e.message.contains('Connection closed') ||
|
||||||
e.message.contains('abort')) {
|
e.message.contains('Connection attempt cancelled')) {
|
||||||
return (null, null, 'Request Cancelled');
|
return (null, null, 'Request Cancelled');
|
||||||
} else {
|
} else {
|
||||||
return (null, null, e.toString());
|
return (null, null, e.toString());
|
||||||
|
Reference in New Issue
Block a user