// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import {FormattedMessage} from 'react-intl'; import {PostTypes} from 'utils/constants.jsx'; import {formatText} from 'utils/text_formatting.jsx'; function renderUsername(value, options) { return renderFormattedText(value, {...options, markdown: false}); } function renderFormattedText(value, options) { return ; } function renderJoinChannelMessage(post, options) { const username = renderUsername(post.props.username, options); return ( ); } function renderLeaveChannelMessage(post, options) { const username = renderUsername(post.props.username, options); return ( ); } function renderAddToChannelMessage(post, options) { const username = renderUsername(post.props.username, options); const addedUsername = renderUsername(post.props.addedUsername, options); return ( ); } function renderRemoveFromChannelMessage(post, options) { const removedUsername = renderUsername(post.props.removedUsername, options); return ( ); } function renderHeaderChangeMessage(post, options) { if (!post.props.username) { return null; } const headerOptions = { ...options, singleline: true }; const username = renderUsername(post.props.username, options); const oldHeader = post.props.old_header ? renderFormattedText(post.props.old_header, headerOptions) : null; const newHeader = post.props.new_header ? renderFormattedText(post.props.new_header, headerOptions) : null; if (post.props.new_header) { if (post.props.old_header) { return ( ); } return ( ); } else if (post.props.old_header) { return ( ); } return null; } function renderDisplayNameChangeMessage(post, options) { if (!(post.props.username && post.props.old_displayname && post.props.new_displayname)) { return null; } const username = renderUsername(post.props.username, options); const oldDisplayName = post.props.old_displayname; const newDisplayName = post.props.new_displayname; return ( ); } function renderPurposeChangeMessage(post, options) { if (!post.props.username) { return null; } const username = renderUsername(post.props.username, options); const oldPurpose = post.props.old_purpose; const newPurpose = post.props.new_purpose; if (post.props.new_purpose) { if (post.props.old_purpose) { return ( ); } return ( ); } else if (post.props.old_purpose) { return ( ); } return null; } function renderChannelDeletedMessage(post, options) { if (!post.props.username) { return null; } const username = renderUsername(post.props.username, options); return ( ); } const systemMessageRenderers = { [PostTypes.JOIN_CHANNEL]: renderJoinChannelMessage, [PostTypes.LEAVE_CHANNEL]: renderLeaveChannelMessage, [PostTypes.ADD_TO_CHANNEL]: renderAddToChannelMessage, [PostTypes.REMOVE_FROM_CHANNEL]: renderRemoveFromChannelMessage, [PostTypes.HEADER_CHANGE]: renderHeaderChangeMessage, [PostTypes.DISPLAYNAME_CHANGE]: renderDisplayNameChangeMessage, [PostTypes.PURPOSE_CHANGE]: renderPurposeChangeMessage, [PostTypes.CHANNEL_DELETED]: renderChannelDeletedMessage }; export function renderSystemMessage(post, options) { if (!systemMessageRenderers[post.type]) { return null; } return systemMessageRenderers[post.type](post, options); }