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-dom'; import { AppsLinkList, calc } from '../common'; import { formatFullDateTimeWithLocale } from '../common/util'; import styles from './metrics.scss'; const StrategyChipItem = ({ strategy }) => ( {strategy.name} ); StrategyChipItem.propTypes = { strategy: PropTypes.object.isRequired, }; // TODO what about "missing" strategies here? const StrategiesList = ({ strategies }) => (
With {strategies.length > 1 ? 'strategies' : 'strategy'}{' '} {strategies.map((strategy, i) => ( ))}
); StrategiesList.propTypes = { strategies: PropTypes.array.isRequired, }; 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, location: PropTypes.object, }; // eslint-disable-next-line camelcase UNSAFE_componentWillMount() { this.props.fetchSeenApps(); this.props.fetchFeatureMetrics(); } formatFullDateTime(v) { return formatFullDateTimeWithLocale(v, this.props.location.locale); } 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 {this.formatFullDateTime(featureToggle.createdAt)}

); } }