[FIX] Merge subscription and room logic using unparsed data (#3859)
This commit is contained in:
parent
80918f56fa
commit
7a9cdde474
|
@ -29,18 +29,18 @@ export const merge = (subscription: ISubscription | IServerSubscription, room?:
|
||||||
if (compareServerVersion(serverVersion, 'lowerThan', '3.7.0')) {
|
if (compareServerVersion(serverVersion, 'lowerThan', '3.7.0')) {
|
||||||
const updatedAt = room?._updatedAt ? new Date(room._updatedAt) : null;
|
const updatedAt = room?._updatedAt ? new Date(room._updatedAt) : null;
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const lastMessageTs = subscription?.lastMessage?.ts ? new Date(subscription.lastMessage.ts) : null;
|
const lastMessageTs = mergedSubscription?.lastMessage?.ts ? new Date(mergedSubscription.lastMessage.ts) : null;
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// If all parameters are null it will return zero, if only one is null it will return its timestamp only.
|
// If all parameters are null it will return zero, if only one is null it will return its timestamp only.
|
||||||
// "It works", but it's not the best solution. It does not accept "Date" as a parameter, but it works.
|
// "It works", but it's not the best solution. It does not accept "Date" as a parameter, but it works.
|
||||||
mergedSubscription.roomUpdatedAt = Math.max(updatedAt, lastMessageTs);
|
mergedSubscription.roomUpdatedAt = Math.max(updatedAt, lastMessageTs);
|
||||||
} else {
|
} else {
|
||||||
// https://github.com/RocketChat/Rocket.Chat/blob/develop/app/ui-sidenav/client/roomList.js#L180
|
// https://github.com/RocketChat/Rocket.Chat/blob/develop/app/ui-sidenav/client/roomList.js#L180
|
||||||
const lastRoomUpdate = room?.lm || subscription.ts || subscription._updatedAt;
|
const lastRoomUpdate = room?.lm || mergedSubscription.ts || mergedSubscription._updatedAt;
|
||||||
// @ts-ignore Same as above scenario
|
// @ts-ignore Same as above scenario
|
||||||
mergedSubscription.roomUpdatedAt = subscription.lr
|
mergedSubscription.roomUpdatedAt = mergedSubscription.lr
|
||||||
? // @ts-ignore Same as above scenario
|
? // @ts-ignore Same as above scenario
|
||||||
Math.max(new Date(subscription.lr), new Date(lastRoomUpdate))
|
Math.max(new Date(mergedSubscription.lr), new Date(lastRoomUpdate))
|
||||||
: lastRoomUpdate;
|
: lastRoomUpdate;
|
||||||
}
|
}
|
||||||
mergedSubscription.ro = room?.ro ?? false;
|
mergedSubscription.ro = room?.ro ?? false;
|
||||||
|
|
Loading…
Reference in New Issue