/* eslint-disable eqeqeq */ /** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ export const getDOMRangeRect = ( nativeSelection: Selection, rootElement: HTMLElement, ): DOMRect => { const domRange = nativeSelection.getRangeAt(0); let rect; if (nativeSelection.anchorNode === rootElement) { let inner = rootElement; while (inner.firstElementChild != null) { inner = inner.firstElementChild as HTMLElement; } rect = inner.getBoundingClientRect(); } else { rect = domRange.getBoundingClientRect(); } return rect; };