@lexical/react
Version:
This package provides Lexical components and hooks for React applications.
32 lines (29 loc) • 963 B
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 {AriaLiveRegionExtension} from '@lexical/a11y';
import {getExtensionDependencyFromEditor} from '@lexical/extension';
import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext';
import {useCallback} from 'react';
/**
* Returns a stable `announce` function backed by the editor's
* {@link AriaLiveRegionExtension} output. Requires
* `AriaLiveRegionExtension` in the editor's extension tree.
*/
export function useLexicalAriaLiveRegion(): (message: string) => void {
const [editor] = useLexicalComposerContext();
return useCallback(
(message: string) => {
const dep = getExtensionDependencyFromEditor(
editor,
AriaLiveRegionExtension,
);
dep.output.announce(message);
},
[editor],
);
}