mirror of
https://github.com/lingble/twenty.git
synced 2025-11-02 21:57:56 +00:00
* ESLint rule: only take explicit boolean predicates in if statements Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Merge main Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix frontend linter errors Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix jest Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix lint on new code Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> --------- Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
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 { REACT_APP_SERVER_BASE_URL } from '~/config';
|
|
|
|
import { ApolloMetadataClientContext } from '../context/ApolloClientMetadataContext';
|
|
|
|
export const ApolloMetadataClientProvider = ({
|
|
children,
|
|
}: {
|
|
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]);
|
|
|
|
return (
|
|
<ApolloMetadataClientContext.Provider value={apolloMetadataClient}>
|
|
{children}
|
|
</ApolloMetadataClientContext.Provider>
|
|
);
|
|
};
|