@atlaskit/editor-plugin-status
Version:
Status plugin for @atlaskit/editor-core
23 lines • 848 B
JavaScript
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
var MAX_STATUS_TURN_INTO_CHARS = 30;
var SUPPORTED_SOURCE_TYPES = new Set(['paragraph', 'heading']);
var getTurnIntoStatusSourceNode = function getTurnIntoStatusSourceNode(selection) {
if (!selection || !(selection instanceof NodeSelection)) {
return null;
}
return selection.node;
};
export var canTurnIntoStatus = function canTurnIntoStatus(node) {
if (!node || !SUPPORTED_SOURCE_TYPES.has(node.type.name)) {
return false;
}
for (var i = 0; i < node.childCount; i++) {
if (!node.child(i).isText) {
return false;
}
}
return node.textContent.trim().length <= MAX_STATUS_TURN_INTO_CHARS;
};
export var isStatusTurnIntoHidden = function isStatusTurnIntoHidden(selection) {
return !canTurnIntoStatus(getTurnIntoStatusSourceNode(selection));
};