fix pinned message edits does not reflect in pinned messages

This commit is contained in:
Ajay Bura 2024-12-22 09:41:07 +05:30
parent 35f0e400ad
commit f809577146
2 changed files with 10 additions and 3 deletions

View file

@ -1,6 +1,6 @@
/* eslint-disable react/destructuring-assignment */
import React, { forwardRef, MouseEventHandler, useCallback, useMemo, useRef } from 'react';
import { MatrixEvent, RelationType, Room } from 'matrix-js-sdk';
import { MatrixEvent, Room } from 'matrix-js-sdk';
import { RoomPinnedEventsEventContent } from 'matrix-js-sdk/lib/types';
import {
Avatar,
@ -257,6 +257,7 @@ export const RoomPinMenu = forwardRef<HTMLDivElement, RoomPinMenuProps>(
msgType={event.getContent().msgtype ?? ''}
ts={event.getTs()}
getContent={getContent}
edited={!!event.replacingEvent}
mediaAutoLoad={mediaAutoLoad}
urlPreview={urlPreview}
htmlReactParserOptions={htmlReactParserOptions}
@ -311,7 +312,7 @@ export const RoomPinMenu = forwardRef<HTMLDivElement, RoomPinMenuProps>(
displayName={displayName}
msgType={mEvent.getContent().msgtype ?? ''}
ts={mEvent.getTs()}
edited={!!editedEvent}
edited={!!editedEvent || !!mEvent.replacingEvent}
getContent={getContent}
mediaAutoLoad={mediaAutoLoad}
urlPreview={urlPreview}

View file

@ -1,4 +1,4 @@
import { MatrixEvent, Room } from 'matrix-js-sdk';
import { IEvent, MatrixEvent, Room } from 'matrix-js-sdk';
import { useCallback, useMemo } from 'react';
import to from 'await-to-js';
import { CryptoBackend } from 'matrix-js-sdk/lib/common-crypto/CryptoBackend';
@ -12,6 +12,12 @@ const useFetchEvent = (room: Room, eventId: string) => {
const evt = await mx.fetchRoomEvent(room.roomId, eventId);
const mEvent = new MatrixEvent(evt);
if (evt.unsigned?.['m.relations'] && evt.unsigned?.['m.relations']['m.replace']) {
const replaceEvt = evt.unsigned?.['m.relations']['m.replace'] as IEvent;
const replaceEvent = new MatrixEvent(replaceEvt);
mEvent.makeReplaced(replaceEvent);
}
if (mEvent.isEncrypted() && mx.getCrypto()) {
await to(mEvent.attemptDecryption(mx.getCrypto() as CryptoBackend));
}