UNPKG

@atlaskit/editor-plugin-insert-block

Version:

Insert block plugin for @atlaskit/editor-core

42 lines 1.64 kB
import { useCallback } from 'react'; import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics'; import { usePopupManager } from './usePopupManager'; export const useEmojiPickerPopup = ({ api, buttonRef }) => { const popupManager = usePopupManager({ focusTarget: buttonRef, analytics: { onToggle: isOpen => { if (isOpen) { var _api$analytics; api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.fireAnalyticsEvent({ action: ACTION.OPENED, actionSubject: ACTION_SUBJECT.PICKER, actionSubjectId: ACTION_SUBJECT_ID.PICKER_EMOJI, attributes: { inputMethod: INPUT_METHOD.TOOLBAR }, eventType: EVENT_TYPE.UI }); } } } }); const handleSelectedEmoji = useCallback(emojiId => { var _api$emoji; api === null || api === void 0 ? void 0 : api.core.actions.focus(); api === null || api === void 0 ? void 0 : api.core.actions.execute(api === null || api === void 0 ? void 0 : (_api$emoji = api.emoji) === null || _api$emoji === void 0 ? void 0 : _api$emoji.commands.insertEmoji(emojiId, INPUT_METHOD.PICKER)); popupManager.close(); return true; }, [api, popupManager]); const onPopupUnmount = useCallback(() => { requestAnimationFrame(() => api === null || api === void 0 ? void 0 : api.core.actions.focus()); }, [api]); return { ...popupManager, handleSelectedEmoji, onPopupUnmount }; };