mirror of
https://github.com/ueberdosis/tiptap.git
synced 2025-06-07 09:25:29 +08:00
fix(react): useIsomorphicLayoutEffect instead to support SSR #5872
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
This commit is contained in:
parent
7870a779e4
commit
8e1a179465
@ -1,8 +1,12 @@
|
|||||||
import type { Editor } from '@tiptap/core'
|
import type { Editor } from '@tiptap/core'
|
||||||
import deepEqual from 'fast-deep-equal/es6/react'
|
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'
|
import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'
|
||||||
|
|
||||||
|
const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect
|
||||||
|
|
||||||
export type EditorStateSnapshot<TEditor extends Editor | null = Editor | null> = {
|
export type EditorStateSnapshot<TEditor extends Editor | null = Editor | null> = {
|
||||||
editor: TEditor;
|
editor: TEditor;
|
||||||
transactionNumber: number;
|
transactionNumber: number;
|
||||||
@ -164,7 +168,7 @@ export function useEditorState<TSelectorResult>(
|
|||||||
options.equalityFn ?? deepEqual,
|
options.equalityFn ?? deepEqual,
|
||||||
)
|
)
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useIsomorphicLayoutEffect(() => {
|
||||||
return editorStateManager.watch(options.editor)
|
return editorStateManager.watch(options.editor)
|
||||||
}, [options.editor, editorStateManager])
|
}, [options.editor, editorStateManager])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user