Skip to content

Commit

Permalink
fix: Unread mark not showing (#30084)
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriellsh committed Aug 25, 2023
1 parent f99d370 commit 22cf158
Show file tree
Hide file tree
Showing 21 changed files with 241 additions and 331 deletions.
5 changes: 5 additions & 0 deletions .changeset/wise-ways-fetch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rocket.chat/meteor": patch
---

fixed the unread messages mark not showing
1 change: 0 additions & 1 deletion apps/meteor/app/ui-utils/client/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import './lib/messageActionDefault';

export { MessageAction } from './lib/MessageAction';
export { messageBox } from './lib/messageBox';
export { readMessage } from './lib/readMessages';
export { LegacyRoomManager } from './lib/LegacyRoomManager';
export { upsertMessage, RoomHistoryManager } from './lib/RoomHistoryManager';
export { mainReady } from './lib/mainReady';
Expand Down
8 changes: 2 additions & 6 deletions apps/meteor/app/ui-utils/client/lib/RoomHistoryManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { getConfig } from '../../../../client/lib/utils/getConfig';
import { waitForElement } from '../../../../client/lib/utils/waitForElement';
import { ChatMessage, ChatSubscription } from '../../../models/client';
import { getUserPreference } from '../../../utils/client';
import { readMessage } from './readMessages';

export async function upsertMessage(
{
Expand Down Expand Up @@ -196,14 +195,12 @@ class RoomHistoryManagerClass extends Emitter {
}

waitAfterFlush(() => {
this.emit('loaded-messages');
const heightDiff = wrapper.scrollHeight - (previousHeight ?? NaN);
wrapper.scrollTop = (scroll ?? NaN) + heightDiff;
});

room.isLoading.set(false);
waitAfterFlush(() => {
readMessage.refreshUnreadMark(rid);
});
}

public async getMoreNext(rid: IRoom['_id'], atBottomRef: MutableRefObject<boolean>) {
Expand Down Expand Up @@ -299,9 +296,8 @@ class RoomHistoryManagerClass extends Emitter {

upsertMessageBulk({ msgs: Array.from(result.messages).filter((msg) => msg.t !== 'command'), subscription });

readMessage.refreshUnreadMark(message.rid);

Tracker.afterFlush(async () => {
this.emit('loaded-messages');
room.isLoading.set(false);
});

Expand Down
171 changes: 0 additions & 171 deletions apps/meteor/app/ui-utils/client/lib/readMessages.ts

This file was deleted.

5 changes: 5 additions & 0 deletions apps/meteor/app/ui/client/lib/ChatMessages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { replyBroadcast } from '../../../../client/lib/chats/flows/replyBroadcas
import { requestMessageDeletion } from '../../../../client/lib/chats/flows/requestMessageDeletion';
import { sendMessage } from '../../../../client/lib/chats/flows/sendMessage';
import { uploadFiles } from '../../../../client/lib/chats/flows/uploadFiles';
import { ReadStateManager } from '../../../../client/lib/chats/readStateManager';
import { createUploadsAPI } from '../../../../client/lib/chats/uploads';
import {
setHighlightMessage,
Expand All @@ -37,6 +38,8 @@ export class ChatMessages implements ChatAPI {

public data: DataAPI;

public readStateManager: ReadStateManager;

public uploads: UploadsAPI;

public userCard: { open(username: string): (event: UIEvent) => void; close(): void };
Expand Down Expand Up @@ -149,6 +152,8 @@ export class ChatMessages implements ChatAPI {
throw new Error('Flow is not implemented');
};

this.readStateManager = new ReadStateManager(rid);

this.userCard = {
open: unimplemented,
close: unimplemented,
Expand Down
3 changes: 2 additions & 1 deletion apps/meteor/client/lib/chats/ChatAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import type { UIEvent } from 'react';
import type { FormattingButton } from '../../../app/ui-message/client/messageBox/messageBoxFormatting';
import type { Subscribable } from '../../definitions/Subscribable';
import type { Upload } from './Upload';
import type { ReadStateManager } from './readStateManager';

export type ComposerAPI = {
release(): void;
Expand Down Expand Up @@ -86,7 +87,6 @@ export type DataAPI = {
getRoom(): Promise<IRoom>;
isSubscribedToRoom(): Promise<boolean>;
joinRoom(): Promise<void>;
markRoomAsRead(): Promise<void>;
findDiscussionByID(drid: IRoom['_id']): Promise<IRoom | undefined>;
getDiscussionByID(drid: IRoom['_id']): Promise<IRoom>;
findSubscription(): Promise<ISubscription | undefined>;
Expand All @@ -110,6 +110,7 @@ export type ChatAPI = {
readonly setComposerAPI: (composer: ComposerAPI) => void;
readonly data: DataAPI;
readonly uploads: UploadsAPI;
readonly readStateManager: ReadStateManager;
readonly messageEditing: {
toPreviousMessage(): Promise<void>;
toNextMessage(): Promise<void>;
Expand Down
8 changes: 1 addition & 7 deletions apps/meteor/client/lib/chats/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import moment from 'moment';
import { hasAtLeastOnePermission, hasPermission } from '../../../app/authorization/client';
import { Messages, ChatRoom, ChatSubscription } from '../../../app/models/client';
import { settings } from '../../../app/settings/client';
import { readMessage, MessageTypes } from '../../../app/ui-utils/client';
import { MessageTypes } from '../../../app/ui-utils/client';
import { sdk } from '../../../app/utils/client/lib/SDKClient';
import { onClientBeforeSendMessage } from '../onClientBeforeSendMessage';
import { prependReplies } from '../utils/prependReplies';
Expand Down Expand Up @@ -249,11 +249,6 @@ export const createDataAPI = ({ rid, tmid }: { rid: IRoom['_id']; tmid: IMessage
await sdk.call('joinRoom', rid);
};

const markRoomAsRead = async (): Promise<void> => {
readMessage.readNow(rid);
readMessage.refreshUnreadMark(rid);
};

const findDiscussionByID = async (drid: IRoom['_id']): Promise<IRoom | undefined> =>
ChatRoom.findOne({ _id: drid, prid: { $exists: true } }, { reactive: false });

Expand Down Expand Up @@ -318,7 +313,6 @@ export const createDataAPI = ({ rid, tmid }: { rid: IRoom['_id']; tmid: IMessage
getRoom,
isSubscribedToRoom,
joinRoom,
markRoomAsRead,
findDiscussionByID,
getDiscussionByID,
findSubscription,
Expand Down
3 changes: 2 additions & 1 deletion apps/meteor/client/lib/chats/flows/sendMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ export const sendMessage = async (chat: ChatAPI, { text, tshow }: { text: string
}
}

await chat.data.markRoomAsRead();
chat.readStateManager.clearUnreadMark();
await chat.readStateManager.debouncedMarkAsRead();

text = text.trim();

Expand Down

0 comments on commit 22cf158

Please sign in to comment.