import { gql, useMutation } from "@apollo/client"; const CREATE_POST_MUTATION = gql` mutation createPost($title: String!, $url: String!) { createPost(title: $title, url: $url) { id title votes url createdAt } } `; const Submit = () => { const [createPost, { loading }] = useMutation(CREATE_POST_MUTATION); const handleSubmit = (event) => { event.preventDefault(); const form = event.target; const formData = new window.FormData(form); const title = formData.get("title"); const url = formData.get("url"); form.reset(); createPost({ variables: { title, url }, update: (cache, { data: { createPost } }) => { cache.modify({ fields: { allPosts(existingPosts = []) { const newPostRef = cache.writeFragment({ data: createPost, fragment: gql` fragment NewPost on allPosts { id type } `, }); return [newPostRef, ...existingPosts]; }, }, }); }, }); }; return (
); }; export default Submit;