Spaces:
Running
Running
File size: 735 Bytes
afd56bc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import React, { useEffect } from 'react';
import { useAuth } from '@clerk/clerk-react';
import { apiClient } from '../api/client';
interface Props {
children: React.ReactNode;
}
export const ApiInterceptor: React.FC<Props> = ({ children }) => {
const { getToken } = useAuth();
useEffect(() => {
const interceptorId = apiClient.interceptors.request.use(
async (config) => {
const token = await getToken();
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
(error) => Promise.reject(error)
);
return () => {
apiClient.interceptors.request.eject(interceptorId);
};
}, [getToken]);
return <>{children}</>;
};
|