import React from 'react' import HTML5Backend from 'react-dnd-html5-backend' import { DragDropContext } from 'react-dnd' import Axios from 'axios' import domtoimage from 'dom-to-image' import Meta from '../components/meta' import Toolbar from '../components/toolbar' import CodeImage from '../components/codeImage' import api from '../lib/api' const DEFAULT_CODE = `const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj) const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res) const unfold = (f, seed) => { const go = (f, seed, acc) => { const res = f(seed) return res ? go(f, res[1], acc.concat([res[0]])) : acc } return go(f, seed, []) } ` class Index extends React.Component { /* pathname, asPath, err, req, res */ static async getInitialProps ({ asPath }) { try { const content = await api.getGist(asPath) return { content } } catch (e) { console.log(e) return {} } } constructor() { super() this.state = { bgColor: '#111111' } } save () { // domtoimage.toPng(document.getElementById('container')) domtoimage.toJpeg(document.getElementById('container')) .then((dataUrl) => { const link = document.createElement('a') // link.download = 'snippet.png' link.download = 'snippet.jpeg' link.href = dataUrl link.click() }) } upload () { domtoimage.toBlob(document.getElementById('container')) .then(api.uploadImage) .then(res => res.data.link) .then(console.log) } render () { return (

Welcome to Code Image

this.setState({ bgColor: color })} bg={this.state.bgColor} /> {this.props.content || DEFAULT_CODE}
) } } export default DragDropContext(HTML5Backend)(Index)