import React, {PureComponent} from 'react'; import autobind from 'autobind-decorator'; import jq from 'jsonpath'; import RequestSettingsModal from '../modals/request-settings-modal'; import Modal from '../base/modal'; import ModalBody from '../base/modal-body'; import ModalHeader from '../base/modal-header'; import {showModal} from './index'; import Link from '../base/link'; @autobind class RequestRenderErrorModal extends PureComponent { constructor (props) { super(props); this.state = { error: null }; } _setModalRef (n) { this.modal = n; } _handleShowRequestSettings () { this.hide(); showModal(RequestSettingsModal, {request: this.state.request}); } show ({request, error}) { this.setState({request, error}); this.modal.show(); } hide () { this.modal.hide(); } renderModalBody (request, error) { const fullPath = `Request.${error.path}`; const result = jq.query(request, `$.${error.path}`); const template = (result && result.length) ? result[0] : null; const locationLabel = template && template.includes('\n') ? `line ${error.location.line} of` : null; return (
Failed to render {fullPath} prior to sending
Render error
{error.message}
Caused by the following field
{locationLabel} {fullPath}