import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import { defineMessages, injectIntl } from 'react-intl'; import injectSheet from 'react-jss'; import Button from '../../../ui/Button'; import styles from './styles'; const messages = defineMessages({ headline: { id: 'service.errorHandler.headline', defaultMessage: 'Oh no!', }, text: { id: 'service.errorHandler.text', defaultMessage: '{name} has failed to load.', }, action: { id: 'service.errorHandler.action', defaultMessage: 'Reload {name}', }, editAction: { id: 'service.errorHandler.editAction', defaultMessage: 'Edit {name}', }, errorMessage: { id: 'service.errorHandler.message', defaultMessage: 'Error', }, }); @injectSheet(styles) @observer class WebviewErrorHandler extends Component { static propTypes = { name: PropTypes.string.isRequired, reload: PropTypes.func.isRequired, edit: PropTypes.func.isRequired, errorMessage: PropTypes.string.isRequired, classes: PropTypes.object.isRequired, }; render() { const { name, reload, edit, errorMessage, classes } = this.props; const { intl } = this.props; return (

{intl.formatMessage(messages.headline)}

{intl.formatMessage(messages.text, { name })}

{intl.formatMessage(messages.errorMessage)}:{' '} {errorMessage}

); } } export default injectIntl(WebviewErrorHandler);