Skip to content

Instantly share code, notes, and snippets.

@stemmlerjs
Created February 13, 2020 16:56
Show Gist options
  • Select an option

  • Save stemmlerjs/5193ea95a608b7eef364de8026947c93 to your computer and use it in GitHub Desktop.

Select an option

Save stemmlerjs/5193ea95a608b7eef364de8026947c93 to your computer and use it in GitHub Desktop.
import React from "react";
import { useMutation, gql } from "@apollo/client";
const SINGLE_UPLOAD = gql`
mutation($file: Upload!) {
singleUpload(file: $file) {
filename
mimetype
encoding
url
}
}
`;
const UploadFile = () => {
const [mutate, { loading, error }] = useMutation(SINGLE_UPLOAD);
const onChange = ({
target: {
validity,
files: [file]
}
}: any) => validity.valid && mutate({ variables: { file } });
if (loading) return <div>Loading...</div>;
if (error) return <div>{JSON.stringify(error, null, 2)}</div>;
return (
<React.Fragment>
<input type="file" required onChange={onChange} />
</React.Fragment>
);
};
const App: React.FC = () => {
return (
<UploadFile />
);
};
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment