UNPKG

@azure/communication-react

Version:

React library for building modern communication user experiences utilizing Azure Communication Services

49 lines 2.35 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { getIdentifierKind } from '@azure/communication-common'; import { fromFlatCommunicationIdentifier, memoizeFnAll } from "../../../acs-ui-common/src"; import { toFlatCommunicationIdentifier } from "../../../acs-ui-common/src"; import memoizeOne from 'memoize-one'; const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess) => { const identifier = fromFlatCommunicationIdentifier(userId); return { userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, // ACS users can not remove Teams users. // Removing unknown types of users is undefined. isRemovable: (getIdentifierKind(identifier).kind === 'communicationUser' || getIdentifierKind(identifier).kind === 'phoneNumber') && localUserCanRemoveOthers, reaction, spotlight, mediaAccess }; }; /** * @private */ export const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess) => { return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess); }); /** * @private */ export const memoizedConvertToVideoTileReaction = memoizeOne((reactionState) => { return reactionState && reactionState.reactionMessage ? { reactionType: reactionState.reactionMessage.reactionType, receivedOn: reactionState.receivedOn } : undefined; }); /** * @private */ export const memoizedSpotlight = memoizeOne((spotlightedParticipants, userId) => { const spotlightOrder = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.find(spotlightedParticipant => toFlatCommunicationIdentifier(spotlightedParticipant.identifier) === userId); return spotlightOrder ? { spotlightedOrderPosition: spotlightOrder.order } : undefined; }); //# sourceMappingURL=participantListSelectorUtils.js.map