From 2ec4a25660770823ac6c2ac6f54b9800b6571d1b Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Thu, 1 May 2025 10:39:49 +0500 Subject: [PATCH] mobile: fix cursor render location incorrect when writing near top of editor --- .../editor-mobile/src/components/editor.tsx | 52 +++++++++---------- .../editor-mobile/src/components/header.tsx | 3 +- .../editor-mobile/src/components/tiptap.tsx | 6 +-- .../extensions/keep-in-view/keep-in-view.ts | 2 +- 4 files changed, 32 insertions(+), 31 deletions(-) diff --git a/packages/editor-mobile/src/components/editor.tsx b/packages/editor-mobile/src/components/editor.tsx index f9a0e01be..7e9492f04 100644 --- a/packages/editor-mobile/src/components/editor.tsx +++ b/packages/editor-mobile/src/components/editor.tsx @@ -421,13 +421,6 @@ const Tiptap = ({ ref={editorRoot} onDoubleClick={onClickEmptyArea} > -
-
+
+ {settings.noHeader || tab.session?.locked ? null : ( <> @@ -854,25 +855,24 @@ const Tiptap = ({ minHeight: 300 }} /> + { + if (!editor) { + setUndo(false); + setRedo(false); + } + if (undo !== editor.can().undo()) { + setUndo(editor.can().undo()); + } + if (redo !== editor.can().redo()) { + setRedo(editor.can().redo()); + } + }} + />
- - { - if (!editor) { - setUndo(false); - setRedo(false); - } - if (undo !== editor.can().undo()) { - setUndo(editor.can().undo()); - } - if (redo !== editor.can().redo()) { - setRedo(editor.can().redo()); - } - }} - /> ); diff --git a/packages/editor-mobile/src/components/header.tsx b/packages/editor-mobile/src/components/header.tsx index 152517586..3bc336931 100644 --- a/packages/editor-mobile/src/components/header.tsx +++ b/packages/editor-mobile/src/components/header.tsx @@ -118,7 +118,8 @@ function Header({ backgroundColor: "var(--nn_primary_background)", position: "sticky", width: "100vw", - zIndex: 999 + zIndex: 999, + top: 0 }} > {noHeader ? null : ( diff --git a/packages/editor-mobile/src/components/tiptap.tsx b/packages/editor-mobile/src/components/tiptap.tsx index ed5b02bfa..f0967c7d2 100644 --- a/packages/editor-mobile/src/components/tiptap.tsx +++ b/packages/editor-mobile/src/components/tiptap.tsx @@ -44,10 +44,10 @@ export default function TiptapEditorWrapper(props: { display: props.settings.noToolbar ? "none" : "flex", overflowY: "hidden", minHeight: "50px", - position: "absolute", + position: "fixed", bottom: 0, - left: 0, - right: 0 + width: "100%", + overscrollBehavior: "none" }} editor={editor} location="bottom" diff --git a/packages/editor/src/extensions/keep-in-view/keep-in-view.ts b/packages/editor/src/extensions/keep-in-view/keep-in-view.ts index a2b6f5e16..ac24af2aa 100644 --- a/packages/editor/src/extensions/keep-in-view/keep-in-view.ts +++ b/packages/editor/src/extensions/keep-in-view/keep-in-view.ts @@ -71,7 +71,7 @@ export const KeepInView = Extension.create< export function keepLastLineInView( editor: Editor, - THRESHOLD = 90, + THRESHOLD = 120, SCROLL_THRESHOLD = 100 ) { if (