insomnia/app/ui/components/viewers/ResponseError.js

74 lines
2.1 KiB
JavaScript
Raw Normal View History

import React, {PureComponent, PropTypes} from 'react';
2016-08-25 17:06:01 +00:00
import Link from '../../components/base/Link';
import {showModal} from '../modals/index';
2016-08-25 17:06:01 +00:00
import SettingsModal from '../modals/SettingsModal';
import {STATUS_CODE_RENDER_FAILED} from '../../../common/constants';
2016-08-25 17:06:01 +00:00
class ResponseError extends PureComponent {
2016-08-25 17:06:01 +00:00
render () {
const {error, statusCode, fontSize} = this.props;
2016-08-25 17:06:01 +00:00
let msg = null;
if (statusCode === STATUS_CODE_RENDER_FAILED) {
2016-08-25 17:06:01 +00:00
msg = (
<Link button
className="btn btn--clicky"
href="https://insomnia.rest/documentation/templating/">
Template Documentation
</Link>
);
} else if (error && error.toLowerCase().indexOf('certificate') !== -1) {
msg = (
<button className="btn btn--clicky" onClick={() => showModal(SettingsModal)}>
2016-08-25 17:06:01 +00:00
Disable SSL Validation
</button>
);
2016-08-25 17:06:01 +00:00
} else if (error && error.toLowerCase().indexOf('getaddrinfo') !== -1) {
msg = (
<button className="btn btn--clicky" onClick={() => showModal(SettingsModal)}>
2016-08-25 17:06:01 +00:00
Setup Network Proxy
</button>
);
2016-08-25 17:06:01 +00:00
} else {
msg = (
<Link button
2016-11-26 00:49:38 +00:00
className="btn btn--clicky"
href="https://insomnia.rest/documentation/">
2016-09-13 18:33:45 +00:00
Documentation
2016-08-25 17:06:01 +00:00
</Link>
);
2016-08-25 17:06:01 +00:00
}
return (
<div>
<pre className="selectable pad force-word-wrap" style={{fontSize: `${fontSize}px`}}>
2016-08-25 17:06:01 +00:00
{error}
2016-09-28 21:17:57 +00:00
</pre>
2016-08-25 17:06:01 +00:00
<hr/>
<div className="text-center pad">
<p className="faint pad-left pad-right">
2016-09-13 18:33:45 +00:00
Here are some additional things that may help.
2016-08-25 17:06:01 +00:00
</p>
{msg}
&nbsp;&nbsp;
<Link button className="btn btn--clicky margin-top-sm"
href="https://insomnia.rest/documentation/support-and-feedback/">
2016-08-25 17:06:01 +00:00
Contact Support
</Link>
</div>
</div>
);
}
}
ResponseError.propTypes = {
// Required
2016-08-25 17:06:01 +00:00
error: PropTypes.string.isRequired,
url: PropTypes.string.isRequired,
statusCode: PropTypes.number.isRequired,
fontSize: PropTypes.number.isRequired
2016-08-25 17:06:01 +00:00
};
export default ResponseError;