Replace MessageController with MessageCache
This commit is contained in:
parent
ba1a8aad09
commit
7d35216fda
73 changed files with 2237 additions and 1229 deletions
50
ts/util/getMessageAuthorText.ts
Normal file
50
ts/util/getMessageAuthorText.ts
Normal file
|
@ -0,0 +1,50 @@
|
|||
// Copyright 2023 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import type {
|
||||
ConversationAttributesType,
|
||||
MessageAttributesType,
|
||||
} from '../model-types.d';
|
||||
import { isIncoming, isOutgoing } from '../state/selectors/message';
|
||||
import { getTitle } from './getTitle';
|
||||
|
||||
function getIncomingContact(
|
||||
messageAttributes: MessageAttributesType
|
||||
): ConversationAttributesType | undefined {
|
||||
if (!isIncoming(messageAttributes)) {
|
||||
return undefined;
|
||||
}
|
||||
const { sourceServiceId } = messageAttributes;
|
||||
if (!sourceServiceId) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return window.ConversationController.getOrCreate(sourceServiceId, 'private')
|
||||
.attributes;
|
||||
}
|
||||
|
||||
export function getMessageAuthorText(
|
||||
messageAttributes?: MessageAttributesType
|
||||
): string | undefined {
|
||||
if (!messageAttributes) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// if it's outgoing, it must be self-authored
|
||||
const selfAuthor = isOutgoing(messageAttributes)
|
||||
? window.i18n('icu:you')
|
||||
: undefined;
|
||||
|
||||
if (selfAuthor) {
|
||||
return selfAuthor;
|
||||
}
|
||||
|
||||
const incomingContact = getIncomingContact(messageAttributes);
|
||||
if (incomingContact) {
|
||||
return getTitle(incomingContact, { isShort: true });
|
||||
}
|
||||
|
||||
// if it's not selfAuthor and there's no incoming contact,
|
||||
// it might be a group notification, so we return undefined
|
||||
return undefined;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue