@flozy/editor 3.3.3 → 3.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,7 @@ import { ReactEditor, useSlate } from "slate-react";
7
7
  import { Node, Path, Transforms } from "slate";
8
8
  import useWindowResize from "../../hooks/useWindowResize";
9
9
  import { MODES } from "./helper";
10
+ import { getSelectedText } from "../../utils/helper";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
13
  const scrollToAIInput = () => {
@@ -33,13 +34,20 @@ const updateAnchorEl = (setAnchorEl, editor) => {
33
34
  if (!editor.selection) {
34
35
  return;
35
36
  }
36
- const focussedNode = Node.get(editor, editor.selection.anchor.path);
37
- const focussedDom = ReactEditor.toDOMNode(editor, focussedNode);
38
37
  const selection = window.getSelection();
39
38
  if (selection.rangeCount) {
39
+ let caret;
40
+ if (getSelectedText(editor)) {
41
+ // selected text as caret
42
+ caret = selection.getRangeAt(0);
43
+ } else {
44
+ const focussedNode = Node.get(editor, editor?.selection?.anchor?.path);
45
+ // foccussed DOM as caret
46
+ caret = ReactEditor.toDOMNode(editor, focussedNode);
47
+ }
40
48
  const getBoundingClientRect = () => {
41
49
  const editorEle = document.querySelector(".ed-section-inner").getBoundingClientRect();
42
- const caretPos = focussedDom.getBoundingClientRect();
50
+ const caretPos = caret.getBoundingClientRect();
43
51
  return {
44
52
  y: caretPos.y,
45
53
  height: caretPos.height,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "3.3.3",
3
+ "version": "3.3.4",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"