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 } from '../common'; import { formatFullDateTime } from '../common/util'; 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 ?

No metrics available

:

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

}
{lastHour.isFallback ?

No metrics available

:

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

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

); } }