import React from 'react'; import PropTypes from 'prop-types'; 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 = { 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)}

); } }