Don't clone message for viewing, so that there is instant interaction with messagelist item

This commit is contained in:
the-djmaze 2023-02-14 10:11:25 +01:00
parent b7a68a4245
commit 614e6c5756
5 changed files with 47 additions and 83 deletions

View file

@ -1,5 +1,6 @@
import { AbstractCollectionModel } from 'Model/AbstractCollection';
import { MessageModel } from 'Model/Message';
import { MessageUserStore } from 'Stores/User/Message';
import {
MessageFlagsCache
@ -31,8 +32,11 @@ export class MessageCollectionModel extends AbstractCollectionModel
* @returns {MessageCollectionModel}
*/
static reviveFromJson(object, cached) {
let msg = MessageUserStore.message();
return super.reviveFromJson(object, message => {
message = MessageModel.reviveFromJson(message);
// If message is currently viewed, use that.
// Maybe then use msg.revivePropertiesFromJson(message) ?
message = (msg && msg.hash === message.hash) ? msg : MessageModel.reviveFromJson(message);
if (message) {
message.deleted(false);
cached ? MessageFlagsCache.initMessage(message) : MessageFlagsCache.store(message);