Fixed logic error on request timing

This commit is contained in:
Elias Müller 2023-09-16 16:13:31 +02:00
parent 02dc1a1ecd
commit c4dae8df8c

View File

@ -5,7 +5,7 @@ import '../dataHolder.dart';
class ChatProps extends DataHolder {
String _queryToken = "";
DateTime _lastRequest = DateTime.now();
DateTime _lastTokenSet = DateTime.now();
GetChatResponse? _getChatResponse;
GetChatResponse get getChatResponse => _getChatResponse!;
@ -19,14 +19,15 @@ class ChatProps extends DataHolder {
void run() {
notifyListeners();
DateTime requestStart = DateTime.now();
GetChatCache(
chatToken: _queryToken,
onUpdate: (GetChatResponse data) {
if(!_lastRequest.isBefore(requestStart)) return; // Another request was faster
_lastRequest = DateTime.now();
if(_lastTokenSet.isAfter(requestStart)) return; // Another request was faster
_getChatResponse = data;
notifyListeners();
}
);
}
@ -34,6 +35,7 @@ class ChatProps extends DataHolder {
void setQueryToken(String token) {
_queryToken = token;
_getChatResponse = null;
_lastTokenSet = DateTime.now();
run();
}