diff --git a/src/index.tsx b/src/index.tsx index 6bc5850..a00f3d0 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,6 +1,12 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client'; +import { + ApolloClient, + InMemoryCache, + createHttpLink, + ApolloProvider, +} from '@apollo/client'; +import { setContext } from '@apollo/client/link/context'; import { ThemeProvider } from 'styled-components'; import { BrowserRouter } from 'react-router-dom'; import { theme } from './themes'; @@ -8,12 +14,24 @@ import App from './App'; import GlobalStyles from './GlobalStyles'; import reportWebVitals from './reportWebVitals'; -const client = new ApolloClient({ +const httpLink = createHttpLink({ uri: process.env.REACT_APP_GRAPHQL_API, +}); + +const authLink = setContext((_, { headers }) => { + const token = localStorage.getItem('token'); + + return { + headers: { + ...headers, + authorization: token || '', + }, + }; +}); + +const client = new ApolloClient({ + link: authLink.concat(httpLink), cache: new InMemoryCache(), - headers: { - authorization: localStorage.getItem('token')!, - }, }); ReactDOM.render(