Memo editor

This commit is contained in:
Gregory Schier
2023-03-31 23:19:15 -07:00
parent be436bb706
commit dd99aa7fcd

View File

@@ -5,7 +5,7 @@ import { keymap, placeholder as placeholderExt, tooltips } from '@codemirror/vie
import classnames from 'classnames'; import classnames from 'classnames';
import { EditorView } from 'codemirror'; import { EditorView } from 'codemirror';
import type { MutableRefObject } from 'react'; import type { MutableRefObject } from 'react';
import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react'; import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useRef } from 'react';
import { IconButton } from '../IconButton'; import { IconButton } from '../IconButton';
import './Editor.css'; import './Editor.css';
import { baseExtensions, getLanguageExtension, multiLineExtensions } from './extensions'; import { baseExtensions, getLanguageExtension, multiLineExtensions } from './extensions';
@@ -37,7 +37,7 @@ export interface EditorProps {
autocomplete?: GenericCompletionConfig; autocomplete?: GenericCompletionConfig;
} }
export const Editor = forwardRef<EditorView | undefined, EditorProps>(function Editor( const _Editor = forwardRef<EditorView | undefined, EditorProps>(function Editor(
{ {
readOnly, readOnly,
type = 'text', type = 'text',
@@ -177,6 +177,8 @@ export const Editor = forwardRef<EditorView | undefined, EditorProps>(function E
); );
}); });
export const Editor = memo(_Editor);
function getExtensions({ function getExtensions({
container, container,
readOnly, readOnly,