CodeMirrorEditorDiff.tsx 975 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { useEffect } from 'react';
  2. import type { Extension } from '@codemirror/state';
  3. import { placeholder } from '@codemirror/view';
  4. import { GlobalCodeMirrorEditorKey } from '../consts';
  5. import { useCodeMirrorEditorIsolated } from '../stores';
  6. import { CodeMirrorEditor, CodeMirrorEditorProps } from '.';
  7. const additionalExtensions: Extension[] = [
  8. [
  9. // todo: i18n
  10. placeholder('Please select page body'),
  11. ],
  12. ];
  13. type Props = CodeMirrorEditorProps & object
  14. export const CodeMirrorEditorDiff = (props: Props): JSX.Element => {
  15. const {
  16. onChange,
  17. } = props;
  18. const { data: codeMirrorEditor } = useCodeMirrorEditorIsolated(GlobalCodeMirrorEditorKey.DIFF);
  19. // setup additional extensions
  20. useEffect(() => {
  21. return codeMirrorEditor?.appendExtensions?.(additionalExtensions);
  22. }, [codeMirrorEditor]);
  23. return (
  24. <CodeMirrorEditor
  25. editorKey={GlobalCodeMirrorEditorKey.DIFF}
  26. onChange={onChange}
  27. hideToolbar
  28. />
  29. );
  30. };