import React, { PropTypes } from 'react'; import { Grid, Cell, Icon, Chip, ChipContact } from 'react-mdl'; import Progress from './progress'; import { Link } from 'react-router'; import { AppsLinkList, calc, styles as commonStyles } from '../common'; import styles from './metrics.scss'; const StrategyChipItem = ({ strategy }) => ( {strategy.name} ); // TODO what about "missing" strategies here? const StrategiesList = ({ strategies }) => (
With {strategies.length > 1 ? 'strategies' : 'strategy'} { strategies.map((strategy, i) => ) }
); export default class MetricComponent extends React.Component { static propTypes () { return { metrics: PropTypes.object.isRequired, featureToggle: PropTypes.object.isRequired, fetchSeenApps: PropTypes.func.isRequired, fetchFeatureMetrics: PropTypes.func.isRequired, }; } componentWillMount () { this.props.fetchSeenApps(); this.props.fetchFeatureMetrics(); this.timer = setInterval(() => { this.props.fetchFeatureMetrics(); }, 5000); } componentWillUnmount () { clearInterval(this.timer); } render () { const { metrics = {}, featureToggle } = this.props; const { lastHour = { yes: 0, no: 0, isFallback: true }, lastMinute = { yes: 0, no: 0, isFallback: true }, seenApps = [], } = metrics; const lastHourPercent = 1 * calc(lastHour.yes, lastHour.yes + lastHour.no, 0); const lastMinutePercent = 1 * calc(lastMinute.yes, lastMinute.yes + lastMinute.no, 0); return (
{ lastMinute.isFallback ? :
}

Last minute
Yes {lastMinute.yes}, No: {lastMinute.no}

{ lastHour.isFallback ? :
}

Last hour
Yes {lastHour.yes}, No: {lastHour.no}

{seenApps.length > 0 ? (
Seen in applications:
) :
Not used in a app in the last hour. This might be due to your client implementation is not reporting usage.
}

); } }