/* eslint react/no-multi-comp:off */ import React, { Component, PureComponent } from 'react'; import { Link } from 'react-router'; import { Grid, Cell, Card, CardTitle, CardText, CardMenu, List, ListItem, ListItemContent, Textfield, Icon, ProgressBar, Tabs, Tab, Switch, } from 'react-mdl'; import { IconLink, shorten, styles as commonStyles } from '../common'; import { formatFullDateTime } from '../common/util'; class StatefulTextfield extends Component { constructor(props) { super(props); this.state = { value: props.value }; this.setValue = function setValue(e) { this.setState({ value: e.target.value }); }.bind(this); } render() { return ( ); } } class ClientApplications extends PureComponent { constructor(props) { super(props); this.state = { activeTab: 0 }; } componentDidMount() { this.props.fetchApplication(this.props.appName); } render() { if (!this.props.application) { return ; } const { application, storeApplicationMetaData } = this.props; const { appName, instances, strategies, seenToggles, url, description, icon = 'apps', color, } = application; const content = this.state.activeTab === 0 ? (
Toggles

{seenToggles.map( ({ name, description, enabled, notFound }, i) => notFound ? ( {name} ) : ( } subtitle={shorten( description, 60 )} > {shorten(name, 50)} ) )}
Implemented strategies

{strategies.map( ({ name, description, notFound }, i) => notFound ? ( {name} ) : ( {shorten(name, 50)} ) )}
{instances.length} Instances registered

{instances.map( ( { instanceId, clientIp, lastSeen, sdkVersion, }, i ) => ( {clientIp} last seen at{' '} {formatFullDateTime(lastSeen)} } > {instanceId}{' '} {sdkVersion ? `(${sdkVersion})` : ''} ) )}
) : (
Edit app meta data
storeApplicationMetaData( appName, 'url', e.target.value )} />
storeApplicationMetaData( appName, 'description', e.target.value )} />
storeApplicationMetaData( appName, 'icon', e.target.value )} /> storeApplicationMetaData( appName, 'color', e.target.value )} />
); return ( {appName} {description && {description}} {url && ( )}
this.setState({ activeTab: tabId })} ripple tabBarProps={{ style: { width: '100%' } }} className="mdl-color--grey-100" > Details Edit {content}
); } } export default ClientApplications;