@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
43 lines (42 loc) • 1.39 kB
TypeScript
/// <reference types="react" />
import { PureComponent } from 'react';
import { EditorView, PluginKey } from '../../prosemirror';
import { EmojiProvider } from '@atlaskit/emoji';
export interface Props {
editorView: EditorView;
pluginKey: PluginKey;
emojiProvider: Promise<EmojiProvider>;
/**
* The number of secondary toolbar buttons between and including ToolbarEmojiPicker and the right edge of the editor
* This must be passed in by the integrator (e.g. SecondaryToolbar) that contains the buttons
* TODO: Implement a better solution as part of ED-2565
*/
numFollowingButtons: number;
}
export interface State {
button?: HTMLElement;
disabled?: boolean;
isOpen: boolean;
}
export default class ToolbarEmojiPicker extends PureComponent<Props, State> {
private pickerRef;
private buttonRef;
private pluginState?;
state: State;
componentWillMount(): void;
componentDidMount(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
private setPluginState(props);
private handlePluginStateChange;
private handleButtonRef;
private onPickerRef;
private close;
private toggleOpen;
private handleClickOutside;
private renderPopup();
render(): JSX.Element;
private renderTrigger(content, trigger);
private getOffsetX;
private handleSelectedEmoji;
}