communication-react-19
Version:
React library for building modern communication user experiences utilizing Azure Communication Services (React 19 compatible fork)
38 lines • 2.08 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import React from 'react';
import { SystemMessage as SystemMessageComponent } from './../SystemMessage';
import { useLocale } from '../../localization/LocalizationProvider';
/**
* @private
*/
export const DefaultSystemMessage = (props) => {
var _a;
const message = props.message;
switch (message.messageType) {
case 'system':
switch (message.systemMessageType) {
case 'content':
return (React.createElement(SystemMessageComponent, { iconName: (message.iconName ? message.iconName : ''), content: (_a = message.content) !== null && _a !== void 0 ? _a : '', containerStyle: props === null || props === void 0 ? void 0 : props.messageContainerStyle }));
case 'participantAdded':
case 'participantRemoved':
return (React.createElement(ParticipantSystemMessageComponent, { message: message, style: props.messageContainerStyle, defaultName: props.strings.noDisplayNameSub }));
}
}
return React.createElement(React.Fragment, null);
};
const ParticipantSystemMessageComponent = ({ message, style, defaultName }) => {
const { strings } = useLocale();
const participantsStr = generateParticipantsStr(message.participants, defaultName);
const messageSuffix = message.systemMessageType === 'participantAdded'
? strings.messageThread.participantJoined
: strings.messageThread.participantLeft;
if (participantsStr !== '') {
return (React.createElement(SystemMessageComponent, { iconName: (message.iconName ? message.iconName : ''), content: `${participantsStr} ${messageSuffix}`, containerStyle: style }));
}
return React.createElement(React.Fragment, null);
};
const generateParticipantsStr = (participants, defaultName) => participants
.map((participant) => `${!participant.displayName || participant.displayName === '' ? defaultName : participant.displayName}`)
.join(', ');
//# sourceMappingURL=DefaultSystemMessage.js.map