import React from 'react'; import classNames from 'classnames'; import HeadlineGroup from './HeadlineGroup'; import HeroHeadline from './HeroHeadline'; import { groupByFirstLetter } from '../../common/model'; import { translate } from '../../common/config'; const rings = ['all', 'assess', 'trial', 'hold', 'adopt']; class PageOverview extends React.Component { constructor(...args) { super(...args); this.state = { ring: rings[0], }; } handleRingClick = (ring) => (e) => { e.preventDefault(); this.setState({ ...this.state, ring, }); } isRingActive(ringName) { return this.state.ring === ringName; } getFilteredAndGroupedItems() { const groups = groupByFirstLetter(this.props.items); const groupsFiltered = groups.map(group => ({ ...group, items: group.items.filter(item => this.state.ring === 'all' || item.ring === this.state.ring), })); const nonEmptyGroups = groupsFiltered.filter(group => group.items.length > 0); return nonEmptyGroups; } render() { const groups = this.getFilteredAndGroupedItems(); return (
Technologies Overview
{ rings.map(ringName => (
{ringName}
)) }
{ groups.map(({ letter, items }) => (
{letter}
)) }
); } } export default PageOverview;