Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/modules/GroupChannel/context/GroupChannelProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -302,10 +302,10 @@ const GroupChannelManager :React.FC<React.PropsWithChildren<GroupChannelProvider

// Starting point handling
useEffect(() => {
if (typeof startingPoint === 'number' && messageDataSource.initialized) {
if (typeof startingPoint === 'number' && state.initialized) {
actions.scrollToMessage(startingPoint, 0, false, false);
}
}, [messageDataSource.initialized, startingPoint]);
}, [state.initialized, startingPoint]);

// Animated message handling
useEffect(() => {
Expand Down
19 changes: 16 additions & 3 deletions src/modules/GroupChannel/context/hooks/useGroupChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,22 @@ export const useGroupChannel = () => {
clickHandler.deactivate();

setAnimatedMessageId(null);
const message = state.messages.find(
(it) => it.messageId === messageId || it.createdAt === createdAt,
);

let message = null;
if (messageId) {
message = state.messages.find((it) => it.messageId === messageId);
} else if (createdAt) {
let distance = Number.MAX_SAFE_INTEGER;
for (const it of state.messages) {
const diff = Math.abs(it.createdAt - createdAt);
if (diff <= distance) {
distance = diff;
message = it;
} else {
break;
}
}
}

if (message) {
const topOffset = getMessageTopOffset(message.createdAt);
Expand Down