convex
Version:
Client for the Convex Cloud
45 lines (44 loc) • 1.32 kB
JavaScript
import React from "react";
import { useCallback, useMemo } from "react";
import { ConvexProviderWithAuth } from "../react/ConvexAuthState.js";
export function ConvexProviderWithClerk({
children,
client,
useAuth
}) {
const useAuthFromClerk = useUseAuthFromClerk(useAuth);
return /* @__PURE__ */ React.createElement(ConvexProviderWithAuth, { client, useAuth: useAuthFromClerk }, children);
}
function useUseAuthFromClerk(useAuth) {
return useMemo(
() => function useAuthFromClerk() {
const { isLoaded, isSignedIn, getToken } = useAuth();
const fetchAccessToken = useCallback(
async ({ forceRefreshToken }) => {
try {
return getToken({
template: "convex",
skipCache: forceRefreshToken
});
} catch (error) {
return null;
}
},
// Clerk is not memoizing its getToken function at all
// eslint-disable-next-line react-hooks/exhaustive-deps
[]
);
return useMemo(
() => ({
isLoading: !isLoaded,
isAuthenticated: isSignedIn ?? false,
fetchAccessToken
}),
[isLoaded, isSignedIn, fetchAccessToken]
);
},
[useAuth]
);
}
//# sourceMappingURL=ConvexProviderWithClerk.js.map
;