import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { Link } from 'react-router'; import { defineMessages, intlShape } from 'react-intl'; import ServiceView from './ServiceView'; import Appear from '../../ui/effects/Appear'; const messages = defineMessages({ welcome: { id: 'services.welcome', defaultMessage: '!!!Welcome to Franz', }, getStarted: { id: 'services.getStarted', defaultMessage: '!!!Get started', }, }); export default @observer class Services extends Component { static propTypes = { services: MobxPropTypes.arrayOrObservableArray, setWebviewReference: PropTypes.func.isRequired, detachService: PropTypes.func.isRequired, handleIPCMessage: PropTypes.func.isRequired, openWindow: PropTypes.func.isRequired, reload: PropTypes.func.isRequired, openSettings: PropTypes.func.isRequired, update: PropTypes.func.isRequired, }; static defaultProps = { services: [], }; static contextTypes = { intl: intlShape, }; render() { const { services, handleIPCMessage, setWebviewReference, detachService, openWindow, reload, openSettings, update, } = this.props; const { intl } = this.context; return (
{services.length === 0 && (

{intl.formatMessage(messages.welcome)}

{intl.formatMessage(messages.getStarted)}
)} {services.map(service => ( reload({ serviceId: service.id })} edit={() => openSettings({ path: `services/edit/${service.id}` })} enable={() => update({ serviceId: service.id, serviceData: { isEnabled: true, }, redirect: false, })} /> ))}
); } }