From 8e1a1794659b22e761db069ef886d4f9ac31becf Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 26 Nov 2024 17:44:36 +0100 Subject: [PATCH] fix(react): useIsomorphicLayoutEffect instead to support SSR #5872 --- packages/react/src/useEditorState.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/react/src/useEditorState.ts b/packages/react/src/useEditorState.ts index c6292b768..5da43e447 100644 --- a/packages/react/src/useEditorState.ts +++ b/packages/react/src/useEditorState.ts @@ -1,8 +1,12 @@ import type { Editor } from '@tiptap/core' import deepEqual from 'fast-deep-equal/es6/react' -import { useDebugValue, useLayoutEffect, useState } from 'react' +import { + useDebugValue, useEffect, useLayoutEffect, useState, +} from 'react' import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector' +const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect + export type EditorStateSnapshot = { editor: TEditor; transactionNumber: number; @@ -164,7 +168,7 @@ export function useEditorState( options.equalityFn ?? deepEqual, ) - useLayoutEffect(() => { + useIsomorphicLayoutEffect(() => { return editorStateManager.watch(options.editor) }, [options.editor, editorStateManager])