import { gql, useMutation } from "@apollo/client"; import PropTypes from "prop-types"; const VOTE_POST = gql` mutation votePost($id: String!) { votePost(id: $id) { __typename id votes } } `; const PostUpvoter = ({ votes, id }) => { const [votePost] = useMutation(VOTE_POST); const upvotePost = () => { votePost({ variables: { id, }, optimisticResponse: { __typename: "Mutation", updatePost: { __typename: "Post", id, votes: votes + 1, }, }, }); }; return ( ); }; PostUpvoter.propTypes = { id: PropTypes.string.isRequired, votes: PropTypes.number.isRequired, }; export default PostUpvoter;