import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Link } from 'react-router'; import { Icon, Card, List, ListItem, ListItemContent, ListItemAction, Chip } from 'react-mdl'; import { styles as commonStyles } from '../common'; import styles from './archive.scss'; class ArchiveList extends Component { static propTypes = { name: PropTypes.string, archive: PropTypes.array, fetchArchive: PropTypes.func, revive: PropTypes.func, }; componentDidMount() { this.props.fetchArchive(); } renderStrategyDetail(feature) { let strategiesList = ( {feature.strategies.map((s, i) => ( {s.name} {Object.keys(s.parameters).map((p, j) => {s.parameters[p]})} ))} ); return strategiesList; } renderStrategiesInList(feature) { let display = []; if (feature.strategies && feature.strategies.length > 0) { const strategiesToShow = Math.min(feature.strategies.length, 3); const remainingStrategies = feature.strategies.length - strategiesToShow; const strategyChips = feature.strategies && feature.strategies.slice(0, strategiesToShow).map((s, i) => ( {s.name} )); const remaining = ( +{remainingStrategies} ); if (remainingStrategies > 0) { display.push(remaining); } display.push(strategyChips); } return display; } render() { const { archive, revive } = this.props; archive.forEach(e => { e.reviveName = e.name; }); return ( {archive && archive.length > 0 ? (
Toggle name Revive
{archive.map((feature, i) => ( {this.props.name && feature.name === this.props.name ? ( ) : ( )} {this.props.name && feature.name === this.props.name ? ( {this.renderStrategiesInList(feature).map((strategyChip, i) => ( {strategyChip} ))} {feature.name}
{feature.description}
{this.renderStrategyDetail(feature)}
) : ( {feature.name} {this.renderStrategiesInList(feature).map((strategyChip, i) => ( {strategyChip} ))}
{feature.description}
)}
revive(feature.name)}>
))}
) : (

No archived feature toggles, go see active toggles here
)}
); } } export default ArchiveList;