draft-js
Version:
A React framework for building text editors.
37 lines (28 loc) • 875 B
Flow
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict-local
* @emails oncall+draft_js
*/
;
const getCorrectDocumentFromNode = require("./getCorrectDocumentFromNode");
const getSelectionOffsetKeyForNode = require("./getSelectionOffsetKeyForNode");
/**
* Get the key from the node's nearest offset-aware ancestor.
*/
function findAncestorOffsetKey(node: Node): ?string {
let searchNode = node;
while (searchNode && searchNode !== getCorrectDocumentFromNode(node).documentElement) {
const key = getSelectionOffsetKeyForNode(searchNode);
if (key != null) {
return key;
}
searchNode = searchNode.parentNode;
}
return null;
}
module.exports = findAncestorOffsetKey;