From ae099e31a64d929d97af67be665f8bf6854eee72 Mon Sep 17 00:00:00 2001 From: Michal Srb Date: Tue, 30 Jul 2024 11:24:51 +0200 Subject: [PATCH] React: Run ConvexAuthState as layout effect (#28408) Use `useLayoutEffect` so that the call to `setAuth` runs before any query subscriptions from child components. GitOrigin-RevId: 999ff5219de51533281c873c232051c5d58441e9 --- npm-packages/convex/src/react/ConvexAuthState.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-packages/convex/src/react/ConvexAuthState.tsx b/npm-packages/convex/src/react/ConvexAuthState.tsx index e74dc5ae..3e062689 100644 --- a/npm-packages/convex/src/react/ConvexAuthState.tsx +++ b/npm-packages/convex/src/react/ConvexAuthState.tsx @@ -2,7 +2,7 @@ import React, { createContext, ReactNode, useContext, - useEffect, + useLayoutEffect, useState, } from "react"; import { AuthTokenFetcher } from "../browser/sync/client.js"; @@ -89,7 +89,7 @@ export function ConvexProviderWithAuth({ boolean | null >(null); - useEffect(() => { + useLayoutEffect(() => { let isThisEffectRelevant = true; if (isAuthenticated) { client.setAuth(fetchAccessToken, (isAuthenticated) => {