import PropTypes from 'prop-types';
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import React from 'react';
import DeleteIntegration from './delete_integration.jsx';
import ChannelStore from 'stores/channel_store.jsx';
import {getSiteURL} from 'utils/url.jsx';
import {FormattedMessage} from 'react-intl';
import {Link} from 'react-router';
export default class InstalledIncomingWebhook extends React.Component {
static get propTypes() {
return {
incomingWebhook: PropTypes.object.isRequired,
onDelete: PropTypes.func.isRequired,
filter: PropTypes.string,
creator: PropTypes.object.isRequired,
canChange: PropTypes.bool.isRequired,
team: PropTypes.object.isRequired
};
}
constructor(props) {
super(props);
this.handleDelete = this.handleDelete.bind(this);
}
handleDelete() {
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);
const filter = this.props.filter ? this.props.filter.toLowerCase() : '';
if (!this.matchesFilter(incomingWebhook, channel, filter)) {
return null;
}
let displayName;
if (incomingWebhook.display_name) {
displayName = incomingWebhook.display_name;
} else if (channel) {
displayName = channel.display_name;
} else {
displayName = (