From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:16:01 +0000 (+1100) Subject: fix edits does not reflect in pinned messages (#2107) X-Git-Tag: v4.3.0~2 X-Git-Url: https://git.wafflesoft.org/?a=commitdiff_plain;h=b84f975f83346538e3e5d4f6bad24b0c86745a50;p=rainny.git fix edits does not reflect in pinned messages (#2107) * fix pinned message edits does not reflect in pinned messages * fix all pinned message show edited * remove console log --- diff --git a/src/app/features/room/room-pin-menu/RoomPinMenu.tsx b/src/app/features/room/room-pin-menu/RoomPinMenu.tsx index c3d259a..2a35fc0 100644 --- a/src/app/features/room/room-pin-menu/RoomPinMenu.tsx +++ b/src/app/features/room/room-pin-menu/RoomPinMenu.tsx @@ -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( 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( displayName={displayName} msgType={mEvent.getContent().msgtype ?? ''} ts={mEvent.getTs()} - edited={!!editedEvent} + edited={!!editedEvent || !!mEvent.replacingEvent()} getContent={getContent} mediaAutoLoad={mediaAutoLoad} urlPreview={urlPreview} diff --git a/src/app/hooks/useRoomEvent.ts b/src/app/hooks/useRoomEvent.ts index 3ca2449..c2715f1 100644 --- a/src/app/hooks/useRoomEvent.ts +++ b/src/app/hooks/useRoomEvent.ts @@ -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)); }