@atlaskit/editor-plugin-emoji
Version:
Emoji plugin for @atlaskit/editor-core
57 lines (56 loc) • 2.29 kB
TypeScript
import type { IntlShape } from 'react-intl';
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { NodeView } from '@atlaskit/editor-prosemirror/view';
import type { EmojiPlugin } from '../emojiPluginType';
import type { EmojiNodeDataProvider } from '../pm-plugins/providers/EmojiNodeDataProvider';
interface Params {
api: ExtractInjectionAPI<EmojiPlugin> | undefined;
emojiNodeDataProvider?: EmojiNodeDataProvider;
intl: IntlShape;
}
/**
* Check if we can nicely fallback to the nodes text
*
* @param fallbackText string of the nodes fallback text
*
* @example
* isSingleEmoji('😀') // true
*/
export declare function isSingleEmoji(fallbackText: string): boolean;
/**
* Emoji node view for renderering emoji nodes
*/
export declare class EmojiNodeView implements NodeView {
dom: Node;
domElement: HTMLElement | undefined;
private readonly node;
private readonly intl;
private renderingFallback;
readonly destroy: () => void;
private static logError;
/**
* Prosemirror node view for rendering emoji nodes. This class is responsible for
* rendering emoji nodes in the editor, handling updates, and managing fallback rendering.
*
* @param node - The ProseMirror node representing the emoji.
* @param extraProps - An object containing additional parameters.
* @param extraProps.intl - The internationalization object for formatting messages.
* @param extraProps.api - The editor API for accessing shared state and connectivity features.
* @param extraProps.emojiNodeDataProvider - (Optional) A provider for fetching emoji data.
*
* @example
* const emojiNodeView = new EmojiNodeView(node, { intl, api, emojiNodeDataProvider });
*/
constructor(node: PMNode, { intl, api, emojiNodeDataProvider }: Params);
/** Type guard to check if a Node is an HTMLElement in a safe way. */
private isHTMLElement;
private updateDom;
private static isEmojiRepresentationSupported;
private cleanUpAndRenderCommonAttributes;
private renderFallback;
private renderEmoji;
private createSpriteEmojiElement;
private createImageEmojiElement;
}
export {};