// 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 InstalledOutgoingWebhook extends React.Component {
static get propTypes() {
return {
outgoingWebhook: React.PropTypes.object.isRequired,
onRegenToken: React.PropTypes.func.isRequired,
onDelete: React.PropTypes.func.isRequired,
filter: React.PropTypes.string
};
}
constructor(props) {
super(props);
this.handleRegenToken = this.handleRegenToken.bind(this);
this.handleDelete = this.handleDelete.bind(this);
}
handleRegenToken(e) {
e.preventDefault();
this.props.onRegenToken(this.props.outgoingWebhook);
}
handleDelete(e) {
e.preventDefault();
this.props.onDelete(this.props.outgoingWebhook);
}
matchesFilter(outgoingWebhook, channel, filter) {
if (!filter) {
return true;
}
if (outgoingWebhook.display_name.toLowerCase().indexOf(filter) !== -1 ||
outgoingWebhook.description.toLowerCase().indexOf(filter) !== -1) {
return true;
}
for (const trigger of outgoingWebhook.trigger_words) {
if (trigger.toLowerCase().indexOf(filter) !== -1) {
return true;
}
}
if (channel) {
if (channel && channel.name.toLowerCase().indexOf(filter) !== -1) {
return true;
}
}
return false;
}
render() {
const outgoingWebhook = this.props.outgoingWebhook;
const channel = ChannelStore.get(outgoingWebhook.channel_id);
if (!this.matchesFilter(outgoingWebhook, channel, this.props.filter)) {
return null;
}
let displayName;
if (outgoingWebhook.display_name) {
displayName = outgoingWebhook.display_name;
} else if (channel) {
displayName = channel.display_name;
} else {
displayName = (