upload-apollo-client/app/components/UploadFileList.mjs

24 lines
679 B
JavaScript

import { gql, useApolloClient, useMutation } from "@apollo/client";
import { createElement as h } from "react";
const MULTIPLE_UPLOAD_MUTATION = gql`
mutation multipleUpload($files: [Upload!]!) {
multipleUpload(files: $files) {
id
}
}
`;
export function UploadFileList() {
const [multipleUploadMutation] = useMutation(MULTIPLE_UPLOAD_MUTATION);
const apolloClient = useApolloClient();
const onChange = ({ target: { validity, files } }) =>
validity.valid &&
multipleUploadMutation({ variables: { files } }).then(() => {
apolloClient.resetStore();
});
return h("input", { type: "file", multiple: true, required: true, onChange });
}