diff --git a/package.json b/package.json index 9c138098..597becb7 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,7 @@ "eslint-plugin-react": "^7.1.0", "extract-text-webpack-plugin": "^2.1.2", "file-loader": "0.11.2", + "file-saver": "^1.3.8", "git-describe": "^4.0.1", "imports-loader": "0.7.1", "json-loader": "0.5.4", diff --git a/src/core/components/highlight-code.jsx b/src/core/components/highlight-code.jsx index 7ddd5532..5cfa9d61 100644 --- a/src/core/components/highlight-code.jsx +++ b/src/core/components/highlight-code.jsx @@ -1,6 +1,7 @@ import React, { Component } from "react" import PropTypes from "prop-types" import { highlight } from "core/utils" +import { saveAs } from "file-saver" export default class HighlightCode extends Component { static propTypes = { @@ -25,6 +26,12 @@ export default class HighlightCode extends Component { this.setState({ contentsHidden: !this.state.contentsHidden }) } + downloadJSON = (value) => { + let fileName = 'response' + let fileToSave = new Blob([value], {type: 'text/json', name: fileName}) + saveAs(fileToSave) + } + render () { let { value, className } = this.props let contentsHidden = this.state && this.state.contentsHidden @@ -42,6 +49,11 @@ export default class HighlightCode extends Component { { contentsHidden ? 'See full contents' : 'Collapse contents'} } + { value.length > 600 && +