diff --git a/app/components/field.js b/app/components/field.js new file mode 100644 index 0000000..17f3c90 --- /dev/null +++ b/app/components/field.js @@ -0,0 +1,13 @@ +const Field = ({ children }) => ( + +) + +export default Field diff --git a/app/components/file-input.js b/app/components/file-input.js deleted file mode 100644 index f9b3af5..0000000 --- a/app/components/file-input.js +++ /dev/null @@ -1,12 +0,0 @@ -const FileInput = props => ( -
- - -
-) - -export default FileInput diff --git a/app/components/section.js b/app/components/section.js new file mode 100644 index 0000000..fb85e50 --- /dev/null +++ b/app/components/section.js @@ -0,0 +1,15 @@ +const Section = ({ heading, children }) => ( +
+

{heading}

+ {children} + +
+) + +export default Section diff --git a/app/components/upload-blob.js b/app/components/upload-blob.js new file mode 100644 index 0000000..337cdb6 --- /dev/null +++ b/app/components/upload-blob.js @@ -0,0 +1,70 @@ +import { Component } from 'react' +import { graphql } from 'react-apollo' +import gql from 'graphql-tag' +import Field from './field' +import uploadsQuery from '../queries/uploads' + +class UploadBlob extends Component { + state = { + name: '', + content: '' + } + + handleChange = ({ target: { name, value } }) => + this.setState({ [name]: value }) + + handleSubmit = event => { + event.preventDefault() + + const file = new Blob([this.state.content], { type: 'text/plain' }) + file.name = `${this.state.name}.txt` + + this.props.mutate({ + variables: { file }, + update: (proxy, { data: { singleUpload } }) => { + const data = proxy.readQuery({ query: uploadsQuery }) + data.uploads.push(singleUpload) + proxy.writeQuery({ query: uploadsQuery, data }) + } + }) + } + + render() { + return ( +
+ + {' '} + .txt + + +