|
@@ -1,12 +1,11 @@
|
|
|
-import { useEffect } from 'react';
|
|
|
|
|
|
|
+import { useEffect, useRef, useMemo } from 'react';
|
|
|
|
|
|
|
|
import type { Extension } from '@codemirror/state';
|
|
import type { Extension } from '@codemirror/state';
|
|
|
import { placeholder, scrollPastEnd } from '@codemirror/view';
|
|
import { placeholder, scrollPastEnd } from '@codemirror/view';
|
|
|
|
|
+import type { ReactCodeMirrorProps } from '@uiw/react-codemirror';
|
|
|
|
|
|
|
|
import { GlobalCodeMirrorEditorKey } from '../consts';
|
|
import { GlobalCodeMirrorEditorKey } from '../consts';
|
|
|
-import { useCodeMirrorEditorIsolated } from '../stores';
|
|
|
|
|
-
|
|
|
|
|
-import { CodeMirrorEditor } from '.';
|
|
|
|
|
|
|
+import { useCodeMirrorEditorIsolated, useDefaultExtensions, useEditorSettings } from '../stores';
|
|
|
|
|
|
|
|
const additionalExtensions: Extension[] = [
|
|
const additionalExtensions: Extension[] = [
|
|
|
[
|
|
[
|
|
@@ -17,7 +16,16 @@ const additionalExtensions: Extension[] = [
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
export const CodeMirrorEditorDiff = (): JSX.Element => {
|
|
export const CodeMirrorEditorDiff = (): JSX.Element => {
|
|
|
- const { data: codeMirrorEditor } = useCodeMirrorEditorIsolated(GlobalCodeMirrorEditorKey.DIFF);
|
|
|
|
|
|
|
+ const codeMirrorRef = useRef(null);
|
|
|
|
|
+
|
|
|
|
|
+ const cmProps = useMemo<ReactCodeMirrorProps>(() => {
|
|
|
|
|
+ return {};
|
|
|
|
|
+ }, []);
|
|
|
|
|
+
|
|
|
|
|
+ const { data: codeMirrorEditor } = useCodeMirrorEditorIsolated(GlobalCodeMirrorEditorKey.DIFF, codeMirrorRef.current, cmProps);
|
|
|
|
|
+
|
|
|
|
|
+ useDefaultExtensions(codeMirrorEditor);
|
|
|
|
|
+ useEditorSettings(codeMirrorEditor);
|
|
|
|
|
|
|
|
// setup additional extensions
|
|
// setup additional extensions
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
@@ -25,9 +33,6 @@ export const CodeMirrorEditorDiff = (): JSX.Element => {
|
|
|
}, [codeMirrorEditor]);
|
|
}, [codeMirrorEditor]);
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
- <CodeMirrorEditor
|
|
|
|
|
- editorKey={GlobalCodeMirrorEditorKey.DIFF}
|
|
|
|
|
- hideToolbar
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <div ref={codeMirrorRef} />
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|