mirror of
https://github.com/usememos/memos.git
synced 2025-02-19 12:50:41 +01:00
fix: editor cursor not in view after smart editing (#1043)
This commit is contained in:
parent
7cd474dbb7
commit
8b92021b1a
@ -3,6 +3,7 @@ import "../../less/editor.less";
|
||||
|
||||
export interface EditorRefActions {
|
||||
focus: FunctionType;
|
||||
scrollToCursor: FunctionType;
|
||||
insertText: (text: string, prefix?: string, suffix?: string) => void;
|
||||
removeText: (start: number, length: number) => void;
|
||||
setContent: (text: string) => void;
|
||||
@ -52,6 +53,10 @@ const Editor = forwardRef(function Editor(props: Props, ref: React.ForwardedRef<
|
||||
focus: () => {
|
||||
editorRef.current?.focus();
|
||||
},
|
||||
scrollToCursor: () => {
|
||||
editorRef.current?.blur();
|
||||
editorRef.current?.focus();
|
||||
},
|
||||
insertText: (content = "", prefix = "", suffix = "") => {
|
||||
if (!editorRef.current) {
|
||||
return;
|
||||
|
@ -402,6 +402,7 @@ const MemoEditor = () => {
|
||||
} else {
|
||||
editorRef.current?.insertText("", "\n- [ ] ");
|
||||
}
|
||||
editorRef.current?.scrollToCursor();
|
||||
};
|
||||
|
||||
const handleCodeBlockBtnClick = () => {
|
||||
@ -416,6 +417,7 @@ const MemoEditor = () => {
|
||||
} else {
|
||||
editorRef.current?.insertText("", "\n```\n", "\n```");
|
||||
}
|
||||
editorRef.current?.scrollToCursor();
|
||||
};
|
||||
|
||||
const handleUploadFileBtnClick = () => {
|
||||
@ -438,7 +440,7 @@ const MemoEditor = () => {
|
||||
const handleTagSelectorClick = useCallback((event: React.MouseEvent) => {
|
||||
if (tagSelectorRef.current !== event.target && tagSelectorRef.current?.contains(event.target as Node)) {
|
||||
editorRef.current?.insertText(`#${(event.target as HTMLElement).textContent} ` ?? "");
|
||||
handleEditorFocus();
|
||||
editorRef.current?.scrollToCursor();
|
||||
}
|
||||
}, []);
|
||||
|
||||
@ -481,7 +483,10 @@ const MemoEditor = () => {
|
||||
<div
|
||||
className={`memo-editor-container ${isEditing ? "edit-ing" : ""} ${state.fullscreen ? "fullscreen" : ""}`}
|
||||
tabIndex={0}
|
||||
onKeyDown={handleKeyDown}
|
||||
onKeyDown={(e) => {
|
||||
handleKeyDown(e);
|
||||
editorRef.current?.scrollToCursor();
|
||||
}}
|
||||
onDrop={handleDropEvent}
|
||||
onFocus={handleEditorFocus}
|
||||
onBlur={handleEditorBlur}
|
||||
|
Loading…
x
Reference in New Issue
Block a user