@lexical/react
Version:
This package provides Lexical components and hooks for React applications.
36 lines (31 loc) • 1.03 kB
text/typescript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import type {LexicalEditor} from 'lexical';
import {
type LexicalSubscription,
useLexicalSubscription,
} from './useLexicalSubscription';
function subscription(editor: LexicalEditor): LexicalSubscription<boolean> {
return {
initialValueFn: () => editor.isEditable(),
subscribe: callback => {
return editor.registerEditableListener(callback);
},
};
}
/**
* Get the current value for {@link LexicalEditor.isEditable}
* using {@link useLexicalSubscription}.
* You should prefer this over manually observing the value with
* {@link LexicalEditor.registerEditableListener},
* which is a bit tricky to do correctly, particularly when using
* React StrictMode (the default for development) or concurrency.
*/
export function useLexicalEditable(): boolean {
return useLexicalSubscription(subscription);
}