Adds keyboard shortcut for editing last message sent

This commit is contained in:
Josh Perez 2023-05-11 20:27:19 -04:00 committed by GitHub
parent a1fd4e55ee
commit 216ee67c50
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 675 additions and 550 deletions

View file

@ -61,6 +61,8 @@ import { getConversationTitleForPanelType } from '../../util/getConversationTitl
import type { PanelRenderType } from '../../types/Panels';
import type { HasStories } from '../../types/Stories';
import { getHasStoriesSelector } from './stories2';
import { canEditMessage } from '../../util/canEditMessage';
import { isOutgoing } from '../../messages/helpers';
export type ConversationWithStoriesType = ConversationType & {
hasStories?: HasStories;
@ -250,6 +252,17 @@ export const getMessagesByConversation = createSelector(
}
);
export const getConversationMessages = createSelector(
getSelectedConversationId,
getMessagesByConversation,
(
conversationId,
messagesByConversation
): ConversationMessageType | undefined => {
return conversationId ? messagesByConversation[conversationId] : undefined;
}
);
const collator = new Intl.Collator();
// Note: we will probably want to put i18n and regionCode back when we are formatting
@ -1127,3 +1140,28 @@ export const getConversationTitle = createSelector(
(i18n, panel): string | undefined =>
getConversationTitleForPanelType(i18n, panel?.type)
);
export const getLastEditableMessageId = createSelector(
getConversationMessages,
getMessages,
(conversationMessages, messagesLookup): string | undefined => {
if (!conversationMessages) {
return;
}
for (let i = conversationMessages.messageIds.length - 1; i >= 0; i -= 1) {
const messageId = conversationMessages.messageIds[i];
const message = messagesLookup[messageId];
if (!message) {
continue;
}
if (isOutgoing(message)) {
return canEditMessage(message) ? message.id : undefined;
}
}
return undefined;
}
);