import React, { PropTypes } from 'react'; import { Tabs, Tab, ProgressBar, List, ListItem, ListItemContent } from 'react-mdl'; import { Link } from 'react-router'; import HistoryComponent from '../history/history-list-toggle-container'; import MetricComponent from './metric-component'; import EditFeatureToggle from './form-edit-container.jsx'; import { getIcon } from '../common'; export default class ViewFeatureToggleComponent extends React.Component { constructor (props) { super(props); this.state = { activeTab: 0 }; } static propTypes () { return { featureToggleName: PropTypes.string.isRequired, features: PropTypes.array.isRequired, fetchFeatureToggles: PropTypes.array.isRequired, }; } componentWillMount () { if (this.props.features.length === 0) { this.props.fetchFeatureToggles(); } this.props.fetchSeenApps(); this.props.fetchFeatureMetrics(); this.timer = setInterval(() => { this.props.fetchFeatureMetrics(); }, 5000); } componentWillUnmount () { clearInterval(this.timer); } render () { const { toggleFeature, features, featureToggleName, metrics = {}, } = this.props; const featureToggle = features.find(toggle => toggle.name === featureToggleName); if (!featureToggle) { if (features.length === 0 ) { return ; } return Could not find the toggle "{this.props.featureToggleName}"; } let tabContent; if (this.state.activeTab === 0) { tabContent = ; } else if (this.state.activeTab === 1) { tabContent = ; } else { tabContent = ; } return (

{featureToggle.name} {featureToggle.enabled ? 'is enabled' : 'is disabled'} Created {(new Date(featureToggle.createdAt)).toLocaleString('nb-NO')}

{featureToggle.description}
this.setState({ activeTab: tabId })} ripple style={{ marginBottom: '10px' }}> Metrics Edit History {tabContent}
); } }