UNPKG

@atlaskit/editor-plugin-tasks-and-decisions

Version:

Tasks and decisions plugin for @atlaskit/editor-core

40 lines (39 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useShowPlaceholder = void 0; var _react = require("react"); var _hooks = require("@atlaskit/editor-common/hooks"); var _state = require("@atlaskit/editor-prosemirror/state"); var useShowPlaceholder = exports.useShowPlaceholder = function useShowPlaceholder(_ref) { var editorView = _ref.editorView, api = _ref.api, isContentNodeEmpty = _ref.isContentNodeEmpty, getPos = _ref.getPos; var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['typeAhead']), typeAheadState = _useSharedPluginState.typeAheadState; var isTypeAheadOpen = Boolean(typeAheadState === null || typeAheadState === void 0 ? void 0 : typeAheadState.isOpen); var isTypeAheadOpenedInsideItem = (0, _react.useMemo)(function () { var _selection$$cursor; if (!isTypeAheadOpen) { return false; } var itemPosition = getPos(); if (typeof itemPosition !== 'number') { return false; } var selection = editorView.state.selection; if (!(selection instanceof _state.TextSelection)) { return false; } var maybeItemNode = editorView.state.doc.nodeAt(itemPosition); var maybeParentItemNode = (_selection$$cursor = selection.$cursor) === null || _selection$$cursor === void 0 ? void 0 : _selection$$cursor.node(); if (maybeItemNode && maybeParentItemNode && maybeItemNode.eq(maybeParentItemNode)) { return true; } return false; }, [isTypeAheadOpen, getPos, editorView]); var showPlaceholder = Boolean(!isTypeAheadOpenedInsideItem && isContentNodeEmpty); return showPlaceholder; };