From eb6b780f6f0aa7d3c585465134149a3846798741 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Sat, 8 Apr 2023 01:59:03 +0800 Subject: [PATCH] fix(react-codemirror-merge): fix extensions props issue. (#455) --- core/tsconfig.json | 5 ++--- merge/src/Modified.tsx | 8 +++++++- merge/src/Original.tsx | 8 +++++++- package.json | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/tsconfig.json b/core/tsconfig.json index e913c6e25..f1d875bc1 100644 --- a/core/tsconfig.json +++ b/core/tsconfig.json @@ -1,9 +1,8 @@ { "extends": "../tsconfig", - "include": ["src", ".kktrc.ts"], + "include": ["src"], "compilerOptions": { "outDir": "./cjs", - "baseUrl": ".", - "noEmit": false + "baseUrl": "." } } diff --git a/merge/src/Modified.tsx b/merge/src/Modified.tsx index d9afbc39e..83e2fb60c 100644 --- a/merge/src/Modified.tsx +++ b/merge/src/Modified.tsx @@ -1,5 +1,5 @@ import { useEffect } from 'react'; -import { EditorStateConfig, Extension } from '@codemirror/state'; +import { EditorStateConfig, Extension, StateEffect } from '@codemirror/state'; import { getDefaultExtensions } from '@uiw/react-codemirror'; import { useStore } from './store'; @@ -30,5 +30,11 @@ export const Modified = (props: ModifiedProps): JSX.Element | null => { } }, [props.value, props.selection, view]); + useEffect(() => { + if (view) { + view.b.dispatch({ effects: StateEffect.appendConfig.of([...defaultExtensions, ...extensions]) }); + } + }, [extensions, view]); + return null; }; diff --git a/merge/src/Original.tsx b/merge/src/Original.tsx index 25b514489..8c474ad90 100644 --- a/merge/src/Original.tsx +++ b/merge/src/Original.tsx @@ -1,5 +1,5 @@ import { useEffect } from 'react'; -import { EditorStateConfig, Extension } from '@codemirror/state'; +import { EditorStateConfig, Extension, StateEffect } from '@codemirror/state'; import { useStore } from './store'; import { getDefaultExtensions } from '@uiw/react-codemirror'; @@ -30,5 +30,11 @@ export const Original = (props: OriginalProps): JSX.Element | null => { } }, [props.value, props.selection, view]); + useEffect(() => { + if (view) { + view.a.dispatch({ effects: StateEffect.appendConfig.of([...defaultExtensions, ...extensions]) }); + } + }, [extensions, view]); + return null; }; diff --git a/package.json b/package.json index f9da0e174..28bd5fb16 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,6 @@ "lint-staged": "~13.2.0", "prettier": "~2.8.0", "react-test-renderer": "~18.2.0", - "tsbb": "^4.1.1" + "tsbb": "^4.1.5" } }