// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import * as Utils from 'utils/utils.jsx'; import {Link} from 'react-router'; import LoadingScreen from 'components/loading_screen.jsx'; export default class InstalledIntegrations extends React.Component { static get propTypes() { return { children: React.PropTypes.node, header: React.PropTypes.node.isRequired, addLink: React.PropTypes.string.isRequired, addText: React.PropTypes.node.isRequired, emptyText: React.PropTypes.node.isRequired, loading: React.PropTypes.bool.isRequired }; } constructor(props) { super(props); this.updateFilter = this.updateFilter.bind(this); this.state = { filter: '' }; } updateFilter(e) { this.setState({ filter: e.target.value }); } render() { const filter = this.state.filter.toLowerCase(); let children; if (this.props.loading) { children = ; } else { children = React.Children.map(this.props.children, (child) => { return React.cloneElement(child, {filter}); }); if (children.length === 0) { children = ( {this.props.emptyText} ); } } return (

{this.props.header}

{children}
); } }