From ca8d91194c8a947b38208421c100f5c5326fdc2b Mon Sep 17 00:00:00 2001 From: Josh Vickery Date: Tue, 7 Nov 2023 18:44:47 -0600 Subject: [PATCH] fix editor reloading content and extensions when typing --- .../src/components/Views/Editor/EditorView.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/renderer/src/components/Views/Editor/EditorView.tsx b/packages/renderer/src/components/Views/Editor/EditorView.tsx index d6734ae..820e3e1 100644 --- a/packages/renderer/src/components/Views/Editor/EditorView.tsx +++ b/packages/renderer/src/components/Views/Editor/EditorView.tsx @@ -1,7 +1,7 @@ import "./styles.scss"; import { Container, Paper } from "@mantine/core"; import { Page } from "common/Save"; -import { useContext, useEffect } from "react"; +import { useContext, useEffect, useMemo } from "react"; import { AppContext } from "types/AppStore"; import { Editor, EditorContent, useEditor } from "@tiptap/react"; import Toolbar from "./Toolbar/Toolbar"; @@ -17,14 +17,22 @@ type Props = { export function EditorView({ page, setEditorRef }: Props) { const appContext = useContext(AppContext); - const editor = useEditor( - { - extensions: extensions({ + const _extensions = useMemo( + () => + extensions({ useTypography: appContext.prefs.editor.useTypographyExtension, tabSize: appContext.prefs.editor.tabSize }), + [appContext.prefs.editor.tabSize, appContext.prefs.editor.useTypographyExtension] + ); + + const content = useMemo(() => JSON.parse(window.api.loadPage(page.fileName)), [page.fileName]); + + const editor = useEditor( + { + extensions: _extensions, autofocus: true, - content: JSON.parse(window.api.loadPage(page.fileName)) + content: content }, [page.id] );