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

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