Files
twenty/front/src/modules/metadata/components/ApolloClientMetadataProvider.tsx
Lucas Bordeau cafcfdc95e Feat/front metadata request (#1977)
* wip

* Wip

* Wip

* Finished v1

* Fix from PR

* Removed unused fragment masking feature
2023-10-13 18:01:57 +02:00

37 lines
1013 B
TypeScript

/* eslint-disable no-console */
import { useMemo } from 'react';
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { useRecoilState } from 'recoil';
import { tokenPairState } from '@/auth/states/tokenPairState';
import { ApolloClientMetadataContext } from '../context/ApolloClientMetadataContext';
export const ApolloClientMetadataProvider = ({
children,
}: {
children: React.ReactNode;
}) => {
const [tokenPair] = useRecoilState(tokenPairState);
const apolloClientMetadata = useMemo(() => {
if (tokenPair?.accessToken.token) {
return new ApolloClient({
uri: `${process.env.REACT_APP_SERVER_BASE_URL}/metadata`,
cache: new InMemoryCache(),
headers: {
Authorization: `Bearer ${tokenPair.accessToken.token}`,
},
});
} else {
return null;
}
}, [tokenPair]);
return (
<ApolloClientMetadataContext.Provider value={apolloClientMetadata}>
{children}
</ApolloClientMetadataContext.Provider>
);
};