import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Card from 'Components/Card'; import Label from 'Components/Label'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import TagList from 'Components/TagList'; import { kinds } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import EditIndexerProxyModalConnector from './EditIndexerProxyModalConnector'; import styles from './IndexerProxy.css'; class IndexerProxy extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isEditIndexerProxyModalOpen: false, isDeleteIndexerProxyModalOpen: false }; } // // Listeners onEditIndexerProxyPress = () => { this.setState({ isEditIndexerProxyModalOpen: true }); }; onEditIndexerProxyModalClose = () => { this.setState({ isEditIndexerProxyModalOpen: false }); }; onDeleteIndexerProxyPress = () => { this.setState({ isEditIndexerProxyModalOpen: false, isDeleteIndexerProxyModalOpen: true }); }; onDeleteIndexerProxyModalClose= () => { this.setState({ isDeleteIndexerProxyModalOpen: false }); }; onConfirmDeleteIndexerProxy = () => { this.props.onConfirmDeleteIndexerProxy(this.props.id); }; // // Render render() { const { id, name, tags, tagList, indexerList } = this.props; return (
{name}
{ tags.map((t) => { const indexers = _.filter(indexerList, { tags: [t] }); if (!indexers || indexers.length === 0) { return null; } return indexers.map((i) => { return ( ); }); }) }
{ !tags || tags.length === 0 ? : null }
); } } IndexerProxy.propTypes = { id: PropTypes.number.isRequired, name: PropTypes.string.isRequired, tags: PropTypes.arrayOf(PropTypes.number).isRequired, tagList: PropTypes.arrayOf(PropTypes.object).isRequired, indexerList: PropTypes.arrayOf(PropTypes.object).isRequired, onConfirmDeleteIndexerProxy: PropTypes.func.isRequired }; export default IndexerProxy;