UNPKG

@tohuhono/puck-rich-text

Version:

A puck component for rich text editing made for OberonCMS

28 lines (26 loc) 813 B
/** * 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. * */ import { $isAtNodeEnd } from "@lexical/selection" import { ElementNode, RangeSelection, TextNode } from "lexical" export function getSelectedNode( selection: RangeSelection, ): TextNode | ElementNode { const anchor = selection.anchor const focus = selection.focus const anchorNode = selection.anchor.getNode() const focusNode = selection.focus.getNode() if (anchorNode === focusNode) { return anchorNode } const isBackward = selection.isBackward() if (isBackward) { return $isAtNodeEnd(focus) ? anchorNode : focusNode } else { return $isAtNodeEnd(anchor) ? anchorNode : focusNode } }