Migrate schema to service ids
This commit is contained in:
parent
71958f8a01
commit
8b0da36caa
258 changed files with 4795 additions and 2613 deletions
|
@ -17,6 +17,7 @@ import type {
|
|||
ActiveCallType,
|
||||
GroupCallRemoteParticipantType,
|
||||
} from '../../types/Calling';
|
||||
import { isAciString } from '../../types/ServiceId';
|
||||
import type { AciString } from '../../types/ServiceId';
|
||||
import { CallMode, CallState } from '../../types/Calling';
|
||||
import type { StateType } from '../reducer';
|
||||
|
@ -131,7 +132,7 @@ const mapStateToActiveCallProp = (
|
|||
(aci: AciString) => undefined | ConversationType
|
||||
>(aci => {
|
||||
const convoForAci = window.ConversationController.lookupOrCreate({
|
||||
uuid: aci,
|
||||
serviceId: aci,
|
||||
reason: 'CallManager.mapStateToActiveCallProp',
|
||||
});
|
||||
return convoForAci ? conversationSelector(convoForAci.id) : undefined;
|
||||
|
@ -165,6 +166,11 @@ const mapStateToActiveCallProp = (
|
|||
return;
|
||||
}
|
||||
|
||||
strictAssert(
|
||||
isAciString(conversation.serviceId),
|
||||
'Conversation must have aci'
|
||||
);
|
||||
|
||||
return {
|
||||
...baseResult,
|
||||
callEndedReason: call.callEndedReason,
|
||||
|
@ -176,7 +182,7 @@ const mapStateToActiveCallProp = (
|
|||
hasRemoteVideo: Boolean(call.hasRemoteVideo),
|
||||
presenting: Boolean(call.isSharingScreen),
|
||||
title: conversation.title,
|
||||
uuid: conversation.uuid,
|
||||
serviceId: conversation.serviceId,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
@ -199,9 +205,9 @@ const mapStateToActiveCallProp = (
|
|||
} = call;
|
||||
|
||||
for (let i = 0; i < memberships.length; i += 1) {
|
||||
const { uuid } = memberships[i];
|
||||
const { aci } = memberships[i];
|
||||
|
||||
const member = conversationSelector(uuid);
|
||||
const member = conversationSelector(aci);
|
||||
if (!member) {
|
||||
log.error('Group member has no corresponding conversation');
|
||||
continue;
|
||||
|
|
|
@ -171,7 +171,7 @@ const mapStateToProps = (state: StateType, props: ExternalProps) => {
|
|||
ourConversationId: getUserConversationId(state),
|
||||
})
|
||||
: undefined,
|
||||
quotedMessageAuthorUuid: quotedMessage?.quote?.authorUuid,
|
||||
quotedMessageAuthorAci: quotedMessage?.quote?.authorAci,
|
||||
quotedMessageSentAt: quotedMessage?.quote?.id,
|
||||
// Emojis
|
||||
recentEmojis,
|
||||
|
@ -201,7 +201,7 @@ const mapStateToProps = (state: StateType, props: ExternalProps) => {
|
|||
draftText: dropNull(draftText),
|
||||
draftBodyRanges: draftBodyRanges?.map(bodyRange => {
|
||||
if (BodyRange.isMention(bodyRange)) {
|
||||
const mentionConvo = conversationSelector(bodyRange.mentionUuid);
|
||||
const mentionConvo = conversationSelector(bodyRange.mentionAci);
|
||||
|
||||
return {
|
||||
...bodyRange,
|
||||
|
|
|
@ -29,7 +29,7 @@ const mapStateToProps = (state: StateType): PropsDataType => {
|
|||
let isAdmin = false;
|
||||
if (contact && currentConversation && currentConversation.memberships) {
|
||||
currentConversation.memberships.forEach(membership => {
|
||||
if (membership.uuid === contact.uuid) {
|
||||
if (membership.aci === contact.serviceId) {
|
||||
isMember = true;
|
||||
isAdmin = membership.isAdmin;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import type { StateProps } from '../../components/conversation/conversation-deta
|
|||
import { ConversationDetails } from '../../components/conversation/conversation-details/ConversationDetails';
|
||||
import {
|
||||
getConversationByIdSelector,
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
getAllComposableConversations,
|
||||
} from '../selectors/conversations';
|
||||
import { getGroupMemberships } from '../../util/getGroupMemberships';
|
||||
|
@ -74,10 +74,11 @@ const mapStateToProps = (
|
|||
Boolean(conversation.groupLink) &&
|
||||
conversation.accessControlAddFromInviteLink !== ACCESS_ENUM.UNSATISFIABLE;
|
||||
|
||||
const conversationByUuidSelector = getConversationByUuidSelector(state);
|
||||
const conversationByServiceIdSelector =
|
||||
getConversationByServiceIdSelector(state);
|
||||
const groupMemberships = getGroupMemberships(
|
||||
conversation,
|
||||
conversationByUuidSelector
|
||||
conversationByServiceIdSelector
|
||||
);
|
||||
|
||||
const badges = getBadgesSelector(state)(conversation.badges);
|
||||
|
@ -88,7 +89,7 @@ const mapStateToProps = (
|
|||
c =>
|
||||
c.type === 'group' &&
|
||||
(c.memberships ?? []).some(
|
||||
member => member.uuid === conversation.uuid
|
||||
member => member.aci === conversation.serviceId
|
||||
)
|
||||
)
|
||||
: [];
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
} from '../../components/conversation/ConversationHeader';
|
||||
import { getPreferredBadgeSelector } from '../selectors/badges';
|
||||
import {
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
getConversationSelector,
|
||||
getHasPanelOpen,
|
||||
isMissingRequiredProfileSharing,
|
||||
|
@ -113,10 +113,12 @@ export function SmartConversationHeader({ id }: OwnProps): JSX.Element {
|
|||
const { searchInConversation } = useSearchActions();
|
||||
const { viewUserStories } = useStoriesActions();
|
||||
|
||||
const conversationByUuidSelector = useSelector(getConversationByUuidSelector);
|
||||
const conversationByServiceIdSelector = useSelector(
|
||||
getConversationByServiceIdSelector
|
||||
);
|
||||
const groupMemberships = getGroupMemberships(
|
||||
conversation,
|
||||
conversationByUuidSelector
|
||||
conversationByServiceIdSelector
|
||||
);
|
||||
const cannotLeaveBecauseYouAreLastAdmin =
|
||||
getCannotLeaveBecauseYouAreLastAdmin(groupMemberships.memberships, isAdmin);
|
||||
|
|
|
@ -318,7 +318,10 @@ function PanelElement({
|
|||
i18n={i18n}
|
||||
onSendMessage={() => {
|
||||
if (signalAccount) {
|
||||
startConversation(signalAccount.phoneNumber, signalAccount.uuid);
|
||||
startConversation(
|
||||
signalAccount.phoneNumber,
|
||||
signalAccount.serviceId
|
||||
);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
|
|
@ -9,7 +9,7 @@ import { assertDev } from '../../util/assert';
|
|||
import { getGroupMemberships } from '../../util/getGroupMemberships';
|
||||
import {
|
||||
getConversationByIdSelector,
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
} from '../selectors/conversations';
|
||||
import { getIntl, getTheme } from '../selectors/user';
|
||||
import { getPreferredBadgeSelector } from '../selectors/badges';
|
||||
|
@ -26,7 +26,9 @@ export function SmartGV1Members({ conversationId }: PropsType): JSX.Element {
|
|||
const { showContactModal } = useGlobalModalActions();
|
||||
|
||||
const conversationSelector = useSelector(getConversationByIdSelector);
|
||||
const conversationByUuidSelector = useSelector(getConversationByUuidSelector);
|
||||
const conversationByServiceIdSelector = useSelector(
|
||||
getConversationByServiceIdSelector
|
||||
);
|
||||
|
||||
const conversation = conversationSelector(conversationId);
|
||||
assertDev(
|
||||
|
@ -36,7 +38,7 @@ export function SmartGV1Members({ conversationId }: PropsType): JSX.Element {
|
|||
|
||||
const { memberships } = getGroupMemberships(
|
||||
conversation,
|
||||
conversationByUuidSelector
|
||||
conversationByServiceIdSelector
|
||||
);
|
||||
|
||||
return (
|
||||
|
|
|
@ -11,7 +11,7 @@ import { getIntl, getTheme } from '../selectors/user';
|
|||
import { getPreferredBadgeSelector } from '../selectors/badges';
|
||||
import {
|
||||
getConversationByIdSelector,
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
} from '../selectors/conversations';
|
||||
import { getGroupMemberships } from '../../util/getGroupMemberships';
|
||||
import { assertDev } from '../../util/assert';
|
||||
|
@ -27,7 +27,8 @@ const mapStateToProps = (
|
|||
props: SmartPendingInvitesProps
|
||||
): PropsDataType => {
|
||||
const conversationSelector = getConversationByIdSelector(state);
|
||||
const conversationByUuidSelector = getConversationByUuidSelector(state);
|
||||
const conversationByServiceIdSelector =
|
||||
getConversationByServiceIdSelector(state);
|
||||
|
||||
const conversation = conversationSelector(props.conversationId);
|
||||
assertDev(
|
||||
|
@ -37,7 +38,7 @@ const mapStateToProps = (
|
|||
|
||||
return {
|
||||
...props,
|
||||
...getGroupMemberships(conversation, conversationByUuidSelector),
|
||||
...getGroupMemberships(conversation, conversationByServiceIdSelector),
|
||||
conversation,
|
||||
getPreferredBadge: getPreferredBadgeSelector(state),
|
||||
i18n: getIntl(state),
|
||||
|
|
|
@ -10,7 +10,7 @@ import { StoriesSettingsModal } from '../../components/StoriesSettingsModal';
|
|||
import {
|
||||
getAllSignalConnections,
|
||||
getCandidateContactsForNewGroup,
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
getGroupStories,
|
||||
getMe,
|
||||
} from '../selectors/conversations';
|
||||
|
@ -48,7 +48,9 @@ export function SmartStoriesSettingsModal(): JSX.Element | null {
|
|||
const distributionLists = useSelector(getDistributionListsWithMembers);
|
||||
const groupStories = useSelector(getGroupStories);
|
||||
|
||||
const getConversationByUuid = useSelector(getConversationByUuidSelector);
|
||||
const getConversationByServiceId = useSelector(
|
||||
getConversationByServiceIdSelector
|
||||
);
|
||||
const theme = useSelector(getTheme);
|
||||
|
||||
return (
|
||||
|
@ -61,7 +63,7 @@ export function SmartStoriesSettingsModal(): JSX.Element | null {
|
|||
getPreferredBadge={getPreferredBadge}
|
||||
i18n={i18n}
|
||||
me={me}
|
||||
getConversationByUuid={getConversationByUuid}
|
||||
getConversationByServiceId={getConversationByServiceId}
|
||||
onDeleteList={deleteDistributionList}
|
||||
toggleGroupsForStorySend={toggleGroupsForStorySend}
|
||||
onDistributionListCreated={createDistributionList}
|
||||
|
|
|
@ -19,7 +19,7 @@ import type { ConversationType } from '../ducks/conversations';
|
|||
import { getIntl, getTheme } from '../selectors/user';
|
||||
import {
|
||||
getMessages,
|
||||
getConversationByUuidSelector,
|
||||
getConversationByServiceIdSelector,
|
||||
getConversationMessagesSelector,
|
||||
getConversationSelector,
|
||||
getConversationsByTitleSelector,
|
||||
|
@ -139,11 +139,12 @@ const getWarning = (
|
|||
return undefined;
|
||||
}
|
||||
|
||||
const getConversationByUuid = getConversationByUuidSelector(state);
|
||||
const getConversationByServiceId =
|
||||
getConversationByServiceIdSelector(state);
|
||||
|
||||
const { memberships } = getGroupMemberships(
|
||||
conversation,
|
||||
getConversationByUuid
|
||||
getConversationByServiceId
|
||||
);
|
||||
const groupNameCollisions = getCollisionsFromMemberships(memberships);
|
||||
const hasGroupMembersWithSameName = !isEmpty(groupNameCollisions);
|
||||
|
@ -174,7 +175,7 @@ const getContactSpoofingReview = (
|
|||
}
|
||||
|
||||
const conversationSelector = getConversationSelector(state);
|
||||
const getConversationByUuid = getConversationByUuidSelector(state);
|
||||
const getConversationByServiceId = getConversationByServiceIdSelector(state);
|
||||
|
||||
const currentConversation = conversationSelector(selectedConversationId);
|
||||
|
||||
|
@ -194,7 +195,7 @@ const getContactSpoofingReview = (
|
|||
);
|
||||
const { memberships } = getGroupMemberships(
|
||||
currentConversation,
|
||||
getConversationByUuid
|
||||
getConversationByServiceId
|
||||
);
|
||||
const groupNameCollisions = getCollisionsFromMemberships(memberships);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue