diff --git a/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts b/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts index 6ff323b06..ec0ef70ea 100644 --- a/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts +++ b/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts @@ -11,9 +11,9 @@ import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation'; import { useUpdateEffect } from '~/hooks/useUpdateEffect'; import { isDefined } from '~/utils/isDefined'; -import { ApolloFactory } from '../services/apollo.factory'; +import { ApolloFactory, Options } from '../services/apollo.factory'; -export const useApolloFactory = () => { +export const useApolloFactory = (options: Partial> = {}) => { // eslint-disable-next-line @nx/workspace-no-state-useref const apolloRef = useRef | null>(null); const [isDebugMode] = useRecoilState(isDebugModeState); @@ -50,6 +50,8 @@ export const useApolloFactory = () => { }, extraLinks: [], isDebugMode, + // Override options + ...options, }); return apolloRef.current.getClient(); diff --git a/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx b/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx index 2af836298..e68f7555b 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx @@ -1,9 +1,4 @@ -import { useMemo } from 'react'; -import { ApolloClient, InMemoryCache } from '@apollo/client'; -import { isNonEmptyString } from '@sniptt/guards'; -import { useRecoilState } from 'recoil'; - -import { tokenPairState } from '@/auth/states/tokenPairState'; +import { useApolloFactory } from '@/apollo/hooks/useApolloFactory'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; import { ApolloMetadataClientContext } from '../context/ApolloClientMetadataContext'; @@ -13,20 +8,9 @@ export const ApolloMetadataClientProvider = ({ }: { children: React.ReactNode; }) => { - const [tokenPair] = useRecoilState(tokenPairState); - const apolloMetadataClient = useMemo(() => { - if (isNonEmptyString(tokenPair?.accessToken.token)) { - return new ApolloClient({ - uri: `${REACT_APP_SERVER_BASE_URL}/metadata`, - cache: new InMemoryCache(), - headers: { - Authorization: `Bearer ${tokenPair.accessToken.token}`, - }, - }); - } else { - return null; - } - }, [tokenPair]); + const apolloMetadataClient = useApolloFactory({ + uri: `${REACT_APP_SERVER_BASE_URL}/metadata`, + }); return (