src/component/selection/findAncestorOffsetKey.js (18 lines of code) (raw):

/** * 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 */ 'use strict'; 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 = node; while ( searchNode && searchNode !== getCorrectDocumentFromNode(node).documentElement ) { const key = getSelectionOffsetKeyForNode(searchNode); if (key != null) { return key; } searchNode = searchNode.parentNode; } return null; } module.exports = findAncestorOffsetKey;