// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import ChannelStore from 'stores/channel_store.jsx'; import * as Utils from 'utils/utils.jsx'; import {FormattedMessage} from 'react-intl'; export default class InstalledIncomingWebhook extends React.Component { static get propTypes() { return { incomingWebhook: React.PropTypes.object.isRequired, onDelete: React.PropTypes.func.isRequired, filter: React.PropTypes.string }; } constructor(props) { super(props); this.handleDelete = this.handleDelete.bind(this); } handleDelete(e) { e.preventDefault(); this.props.onDelete(this.props.incomingWebhook); } matchesFilter(incomingWebhook, channel, filter) { if (!filter) { return true; } if (incomingWebhook.display_name.toLowerCase().indexOf(filter) !== -1 || incomingWebhook.description.toLowerCase().indexOf(filter) !== -1) { return true; } if (incomingWebhook.channel_id) { if (channel && channel.name.toLowerCase().indexOf(filter) !== -1) { return true; } } return false; } render() { const incomingWebhook = this.props.incomingWebhook; const channel = ChannelStore.get(incomingWebhook.channel_id); if (!this.matchesFilter(incomingWebhook, channel, this.props.filter)) { return null; } let displayName; if (incomingWebhook.display_name) { displayName = incomingWebhook.display_name; } else if (channel) { displayName = channel.display_name; } else { displayName = ( ); } let description = null; if (incomingWebhook.description) { description = (
{incomingWebhook.description}
); } return (
{displayName}
{description}
); } }