Fixed sorting on talk chats
This commit is contained in:
parent
2ddaa17a81
commit
5d62f1b863
lib
api
view/pages/talk
@ -15,20 +15,22 @@ class GetRoomResponse extends ApiResponse {
|
||||
Map<String, dynamic> toJson() => _$GetRoomResponseToJson(this);
|
||||
|
||||
List<GetRoomResponseObject> sortBy({bool lastActivity = true, required bool favoritesToTop, required bool unreadToTop}) {
|
||||
return data.toList()..sort((a, b) {
|
||||
for (var chat in data) {
|
||||
final buffer = StringBuffer();
|
||||
|
||||
// Unread messages
|
||||
if(favoritesToTop) {
|
||||
buffer.write(chat.isFavorite ? "b" : "a");
|
||||
}
|
||||
if(unreadToTop) {
|
||||
int unreadStatus = b.unreadMessages.compareTo(a.unreadMessages);
|
||||
if(unreadStatus != 0) return unreadStatus;
|
||||
buffer.write(chat.unreadMessages > 0 ? "b" : "a");
|
||||
}
|
||||
|
||||
// Favorites
|
||||
if(favoritesToTop) if(a.isFavorite) return -1;
|
||||
buffer.write(chat.lastActivity);
|
||||
|
||||
// Activity
|
||||
return b.lastActivity.compareTo(a.lastActivity);
|
||||
});
|
||||
chat.sort = buffer.toString();
|
||||
}
|
||||
|
||||
return data.toList()..sort((a, b) => b.sort!.compareTo(a.sort!));
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,6 +66,7 @@ class GetRoomResponseObject {
|
||||
String? status;
|
||||
String? statusIcon;
|
||||
String? statusMessage;
|
||||
String? sort;
|
||||
|
||||
GetRoomResponseObject(
|
||||
this.id,
|
||||
|
@ -1,3 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:http/http.dart' as http;
|
||||
import '../../apiError.dart';
|
||||
import '../../apiRequest.dart';
|
||||
@ -17,6 +19,6 @@ abstract class MessageApi<T> extends ApiRequest {
|
||||
throw ApiError("Request could not be dispatched!");
|
||||
}
|
||||
|
||||
return assemble(data.body);
|
||||
return assemble(utf8.decode(data.bodyBytes));
|
||||
}
|
||||
}
|
@ -175,7 +175,7 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
),
|
||||
onLongPress: () {
|
||||
showDialog(context: context, builder: (context) {
|
||||
List<String> commonReactions = ["😆", "👍", "👎", "❤️", "💔", "😍"];
|
||||
List<String> commonReactions = ["👍", "👎", "😆", "❤️", "💔", "😍"];
|
||||
return SimpleDialog(
|
||||
children: [
|
||||
Wrap(
|
||||
|
Loading…
x
Reference in New Issue
Block a user