add apollo setup

This commit is contained in:
João Geonizeli
2022-07-21 21:02:43 -03:00
parent 6e24b28306
commit f8d5d08447
5 changed files with 173 additions and 11 deletions

View File

@@ -0,0 +1,36 @@
import React, { FC } from "react";
import {
ApolloClient,
createHttpLink,
InMemoryCache,
ApolloProvider,
} from "@apollo/client";
type Props = {
children: React.ReactNode
}
export const ApolloContext: FC<Props> = ({ children }) => {
const crfsToken = document
.querySelector("[name='csrf-token']")
?.getAttribute('content')
if (!crfsToken) {
throw new Error('CSRF token not found')
}
const httpLink = createHttpLink({
uri: '/graphql',
headers: {
'X-CSRF-Token': crfsToken,
}
})
const client = new ApolloClient({
link: httpLink,
cache: new InMemoryCache(),
credentials: "same-origin",
});
return <ApolloProvider client={client}>{children}</ApolloProvider>;
};