upload-apollo-client/app/components/UploadFileList.js
2018-11-29 07:45:05 +11:00

35 lines
805 B
JavaScript

import gql from 'graphql-tag'
import { graphql } from 'react-apollo'
import uploadsQuery from '../queries/uploads'
const UploadFileList = ({ mutate }) => {
const handleChange = ({ target: { validity, files } }) =>
validity.valid &&
mutate({
variables: { files },
update(
proxy,
{
data: { multipleUpload }
}
) {
const data = proxy.readQuery({ query: uploadsQuery })
data.uploads.push(...multipleUpload)
proxy.writeQuery({ query: uploadsQuery, data })
}
})
return <input type="file" multiple required onChange={handleChange} />
}
export default graphql(gql`
mutation($files: [Upload!]!) {
multipleUpload(files: $files) {
id
filename
mimetype
path
}
}
`)(UploadFileList)