Allow adding to a group by phone number

This commit is contained in:
Fedor Indutny 2022-04-04 17:38:22 -07:00 committed by GitHub
parent 76a1a805ef
commit 9568d5792e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 1842 additions and 693 deletions

View file

@ -25,6 +25,7 @@ import {
} from '../ducks/conversationsEnums';
import { getOwn } from '../../util/getOwn';
import { isNotNil } from '../../util/isNotNil';
import type { UUIDFetchStateType } from '../../util/uuidFetchState';
import { deconstructLookup } from '../../util/deconstructLookup';
import type { PropsDataType as TimelinePropsType } from '../../components/conversation/Timeline';
import type { TimelineItemType } from '../../components/conversation/TimelineItem';
@ -394,21 +395,25 @@ export const getComposerConversationSearchTerm = createSelector(
}
);
export const getIsFetchingUsername = createSelector(
export const getComposerUUIDFetchState = createSelector(
getComposerState,
(composer): boolean => {
(composer): UUIDFetchStateType => {
if (!composer) {
assert(false, 'getIsFetchingUsername: composer is not open');
return false;
return {};
}
if (composer.step !== ComposerStep.StartDirectConversation) {
if (
composer.step !== ComposerStep.StartDirectConversation &&
composer.step !== ComposerStep.ChooseGroupMembers
) {
assert(
false,
`getIsFetchingUsername: step ${composer.step} has no isFetchingUsername key`
`getComposerUUIDFetchState: step ${composer.step} ` +
'has no uuidFetchState key'
);
return false;
return {};
}
return composer.isFetchingUsername;
return composer.uuidFetchState;
}
);
@ -512,28 +517,33 @@ const getNormalizedComposerConversationSearchTerm = createSelector(
export const getFilteredComposeContacts = createSelector(
getNormalizedComposerConversationSearchTerm,
getComposableContacts,
getRegionCode,
(
searchTerm: string,
contacts: Array<ConversationType>
contacts: Array<ConversationType>,
regionCode: string | undefined
): Array<ConversationType> => {
return filterAndSortConversationsByTitle(contacts, searchTerm);
return filterAndSortConversationsByTitle(contacts, searchTerm, regionCode);
}
);
export const getFilteredComposeGroups = createSelector(
getNormalizedComposerConversationSearchTerm,
getComposableGroups,
getRegionCode,
(
searchTerm: string,
groups: Array<ConversationType>
groups: Array<ConversationType>,
regionCode: string | undefined
): Array<ConversationType> => {
return filterAndSortConversationsByTitle(groups, searchTerm);
return filterAndSortConversationsByTitle(groups, searchTerm, regionCode);
}
);
export const getFilteredCandidateContactsForNewGroup = createSelector(
getCandidateContactsForNewGroup,
getNormalizedComposerConversationSearchTerm,
getRegionCode,
filterAndSortConversationsByTitle
);