@atlaskit/editor-plugin-code-block
Version:
Code block plugin for @atlaskit/editor-core
30 lines (29 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.refreshBrowserSelection = exports.default = void 0;
var _browser = require("@atlaskit/editor-common/browser");
var _pluginKey = require("./plugin-key");
// Workaround for a firefox issue where dom selection is off sync
// https://product-fabric.atlassian.net/browse/ED-12442
var refreshBrowserSelection = exports.refreshBrowserSelection = function refreshBrowserSelection() {
var domSelection = window.getSelection();
if (domSelection) {
var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
if (domRange) {
domSelection.removeAllRanges();
domSelection.addRange(domRange);
}
}
};
var refreshBrowserSelectionOnChange = function refreshBrowserSelectionOnChange(transaction, editorState) {
var _pluginKey$getState;
var browser = (0, _browser.getBrowserInfo)();
if (browser.gecko && transaction.docChanged &&
// codeblockState.pos should be set if current selection is in a codeblock.
typeof ((_pluginKey$getState = _pluginKey.pluginKey.getState(editorState)) === null || _pluginKey$getState === void 0 ? void 0 : _pluginKey$getState.pos) === 'number') {
refreshBrowserSelection();
}
};
var _default = exports.default = refreshBrowserSelectionOnChange;