Skip to content

Instantly share code, notes, and snippets.

@koddsson
Created March 14, 2017 21:45
Show Gist options
  • Save koddsson/fd2e571be934a351975dd87cff81554d to your computer and use it in GitHub Desktop.
Save koddsson/fd2e571be934a351975dd87cff81554d to your computer and use it in GitHub Desktop.
esnextbin sketch
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ESNextbin Sketch</title>
<!-- put additional styles and scripts here -->
</head>
<body>
<div id="root"></div>
</body>
</html>
import React from 'react';
import { render } from 'react-dom';
import domtoimage from 'dom-to-image';
import { saveAs } from 'file-saver';
class App extends React.Component {
download = () => {
domtoimage.toBlob(this.container).then((blob) => {
saveAs(blob, 'screenshot.png');
});
}
render() {
const style = {
header: {
color: 'red',
},
container: {
padding: 20,
border: '1px solid gray',
margin: 10,
display: 'inline-block',
}
};
return (
<div style={style.container} ref={(ref) => this.container = ref}>
<h1 style={style.header}>Please render this box for me</h1>
<button onClick={this.download}>
Download image
</button>
</div>
);
}
}
render(<App />, document.querySelector('#root'));
{
"name": "esnextbin-sketch",
"version": "0.0.0",
"dependencies": {
"babel-runtime": "6.23.0",
"react": "15.4.2",
"react-dom": "15.4.2",
"file-saver": "1.3.3",
"dom-to-image": "2.5.2"
}
}
'use strict';
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _domToImage = require('dom-to-image');
var _domToImage2 = _interopRequireDefault(_domToImage);
var _fileSaver = require('file-saver');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var App = function (_React$Component) {
(0, _inherits3.default)(App, _React$Component);
function App() {
var _Object$getPrototypeO;
var _temp, _this, _ret;
(0, _classCallCheck3.default)(this, App);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_Object$getPrototypeO = (0, _getPrototypeOf2.default)(App)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.download = function () {
_domToImage2.default.toBlob(_this.container).then(function (blob) {
(0, _fileSaver.saveAs)(blob, 'screenshot.png');
});
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
}
(0, _createClass3.default)(App, [{
key: 'render',
value: function render() {
var _this2 = this;
var style = {
header: {
color: 'red'
},
container: {
padding: 20,
border: '1px solid gray',
margin: 10,
display: 'inline-block'
}
};
return _react2.default.createElement(
'div',
{ style: style.container, ref: function ref(_ref) {
return _this2.container = _ref;
} },
_react2.default.createElement(
'h1',
{ style: style.header },
'Please render this box for me'
),
_react2.default.createElement(
'button',
{ onClick: this.download },
'Download image'
)
);
}
}]);
return App;
}(_react2.default.Component);
(0, _reactDom.render)(_react2.default.createElement(App, null), document.querySelector('#root'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment