Adds keyboard shortcut for editing last message sent
This commit is contained in:
parent
a1fd4e55ee
commit
216ee67c50
13 changed files with 675 additions and 550 deletions
|
@ -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;
|
||||
}
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue