Fixed race-condition-like bug, when switching between chats too fast

This commit is contained in:
Elias Müller 2023-09-16 00:15:26 +02:00
parent eb5eec3576
commit 258206a7a5

@ -5,6 +5,7 @@ import '../dataHolder.dart';
class ChatProps extends DataHolder {
String _queryToken = "";
DateTime _lastRequest = DateTime.now();
GetChatResponse? _getChatResponse;
GetChatResponse get getChatResponse => _getChatResponse!;
@ -17,11 +18,15 @@ class ChatProps extends DataHolder {
@override
void run() {
notifyListeners();
DateTime requestStart = DateTime.now();
GetChatCache(
chatToken: _queryToken,
onUpdate: (GetChatResponse data) => {
_getChatResponse = data,
notifyListeners(),
onUpdate: (GetChatResponse data) {
if(!_lastRequest.isBefore(requestStart)) return; // Another request was faster
_lastRequest = DateTime.now();
_getChatResponse = data;
notifyListeners();
}
);
}
@ -35,5 +40,4 @@ class ChatProps extends DataHolder {
String currentToken() {
return _queryToken;
}
}