// 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 = (