From 87c6e9de2008b1dd6443551202e3e67a515ea792 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Tue, 20 Jun 2023 21:46:40 +0200 Subject: [PATCH] Revert "fix: remove startTransition so mutation hook could update immediately (#2654)" (#2681) --- _internal/src/utils/state.ts | 10 +++++++--- e2e/test/mutate-server-action.test.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/_internal/src/utils/state.ts b/_internal/src/utils/state.ts index a46f21a34..1b39a58f5 100644 --- a/_internal/src/utils/state.ts +++ b/_internal/src/utils/state.ts @@ -1,6 +1,6 @@ import type { MutableRefObject } from 'react' -import { useRef, useCallback, useState } from 'react' -import { useIsomorphicLayoutEffect } from './env' +import React, { useRef, useCallback, useState } from 'react' +import { useIsomorphicLayoutEffect, IS_REACT_LEGACY } from './env' /** * An implementation of state with dependency-tracking. @@ -65,7 +65,11 @@ export const useStateWithDeps = ( } if (shouldRerender && !unmountedRef.current) { - rerender({}) + if (IS_REACT_LEGACY) { + rerender({}) + } else { + ;(React as any).startTransition(() => rerender({})) + } } }, [rerender] diff --git a/e2e/test/mutate-server-action.test.ts b/e2e/test/mutate-server-action.test.ts index 38086ce7c..19a07daa2 100644 --- a/e2e/test/mutate-server-action.test.ts +++ b/e2e/test/mutate-server-action.test.ts @@ -1,7 +1,7 @@ /* eslint-disable testing-library/prefer-screen-queries */ import { test, expect } from '@playwright/test' -test('mutate-server-action', async ({ page }) => { +test.skip('mutate-server-action', async ({ page }) => { await page.goto('./mutate-server-action') await page.getByRole('button', { name: 'mutate' }).click() await expect(page.getByText('isMutating: true')).toBeVisible()