It’s cool to see progressive enhancement being done even while using the fanciest of the fancy front-end technologies.
This is a button in a JSX React component that has a click handler applied directly to it that fires a data mutation Ajax request through Apollo GraphQL. That is about the least friendly environment for progressive enhancement I can imagine.
<form>, so that’s what they do. It submits to the
/graphql endpoint with the data it needs to perform the mutation via hidden inputs, plus additional data on where to redirect upon success or failure.
GraphQL is the greatest thing going in website-powering APIs. It's empowering for developers: ask for what you want in an easy syntax, get it. But if you want to really learn it, there is a lot to know. Fortunately, Frontend Masters has the courses Client-Side GraphQL in React and Server-Side GraphQL in Node.js course from Scott Moss.