47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
// Copyright 2021 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import type { ConversationType } from '../state/ducks/conversations';
|
|
import { format, isValidNumber } from '../types/PhoneNumber';
|
|
|
|
const PLACEHOLDER_CONTACT: ConversationType = {
|
|
acceptedMessageRequest: false,
|
|
badges: [],
|
|
id: 'placeholder-contact',
|
|
isMe: false,
|
|
sharedGroupNames: [],
|
|
title: window.i18n('icu:unknownContact'),
|
|
type: 'direct',
|
|
};
|
|
|
|
export function findAndFormatContact(identifier?: string): ConversationType {
|
|
if (!identifier) {
|
|
return PLACEHOLDER_CONTACT;
|
|
}
|
|
|
|
const contactModel = window.ConversationController.get(
|
|
identifier.toLowerCase()
|
|
);
|
|
if (contactModel) {
|
|
return contactModel.format();
|
|
}
|
|
|
|
const regionCode = window.storage.get('regionCode');
|
|
|
|
if (!isValidNumber(identifier, { regionCode })) {
|
|
return PLACEHOLDER_CONTACT;
|
|
}
|
|
|
|
const phoneNumber = format(identifier, { ourRegionCode: regionCode });
|
|
|
|
return {
|
|
acceptedMessageRequest: false,
|
|
badges: [],
|
|
id: 'phone-only',
|
|
isMe: false,
|
|
phoneNumber,
|
|
sharedGroupNames: [],
|
|
title: phoneNumber,
|
|
type: 'direct',
|
|
};
|
|
}
|