Marco's notes

redux toolkit

Redux query

chain api call

  const [login, { isLoading, error: loginError, isSuccess: isLoginSuccess }] =
    useLoginMutation();
  const { isLoading: isGetMeLoading } = useGetMeQuery(undefined, {
    skip: !isLoginSuccess,
  }); // run after login success

Prepend authorization header

export const rootApi = createApi({
  baseQuery: fetchBaseQuery({
    baseUrl: API_HOST,
    prepareHeaders: (headers, { getState }) => {
      const token = (getState() as RootState).auth.accessToken;
      if (token) {
        headers.set('Authorization', `Bearer ${token}`);
      }
      return headers;
    },
  }),
  endpoints: () => ({}),
});

code spliiting

export const userApi = rootApi.injectEndpoints({
  ...
})