import React, { PropTypes } from 'react'; import { Link } from 'react-router'; import { Chip, Switch, Icon, IconButton } from 'react-mdl'; import Progress from './progress'; import { shorten, calc } from '../common'; import style from './feature.scss'; const Feature = ({ feature, onFeatureClick, onFeatureRemove, settings, metricsLastHour = { yes: 0, no: 0, isFallback: true }, metricsLastMinute = { yes: 0, no: 0, isFallback: true }, }) => { const { name, description, enabled, strategies } = feature; const { showLastHour = false } = settings; const isStale = showLastHour ? metricsLastHour.isFallback : metricsLastMinute.isFallback; const percent = 1 * (showLastHour ? calc(metricsLastHour.yes, metricsLastHour.yes + metricsLastHour.no, 0) : calc(metricsLastMinute.yes, metricsLastMinute.yes + metricsLastMinute.no, 0) ); const removeToggle = () => { if (window.confirm('Are you sure you want to remove this toggle?')) { // eslint-disable-line no-alert onFeatureRemove(name); } }; return (
  • { isStale ? :
    }
      onFeatureClick(feature)} checked={enabled} /> {name} {shorten(description, 30) || ''}
    {strategies && strategies.map((s, i) => {s.name} )}
  • ); }; Feature.propTypes = { feature: PropTypes.object, onFeatureClick: PropTypes.func, onFeatureRemove: PropTypes.func, }; export default Feature;