From 005f2d8ef11bbdd7f11b02cb858d4b6e5c610d8c Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 11 Mar 2024 11:02:27 +0500 Subject: [PATCH] web: handle locked notes properly in real time editor sync --- apps/web/src/components/editor/index.tsx | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/apps/web/src/components/editor/index.tsx b/apps/web/src/components/editor/index.tsx index 49c5e9790..a51ed588f 100644 --- a/apps/web/src/components/editor/index.tsx +++ b/apps/web/src/components/editor/index.tsx @@ -177,23 +177,19 @@ function EditorView({ ) return; - const { contentId, locked } = session.note; + const { contentId } = session.note; const isContent = item.type === "tiptap" && item.id === contentId; const isNote = item.type === "note" && item.id === session.note.id; - if (id && isContent) { - let content: string | null = null; - if (locked && item.locked) { - const result = await db.vault - .decryptContent(item, item.noteId) - .catch(() => undefined); - if (result) content = result.data; - else EV.publish(EVENTS.vaultLocked); - } - editor.updateContent(item.data as string); - } else if (isNote) { - if (!locked && item.locked) return EV.publish(EVENTS.vaultLocked); + if (isContent) { + if (!item.locked) return editor.updateContent(item.data); + const result = await db.vault + .decryptContent(item, item.noteId) + .catch(() => EV.publish(EVENTS.vaultLocked)); + if (!result) return; + editor.updateContent(result.data); + } else if (isNote) { useEditorStore .getState() .updateSession(session.id, [session.type], { note: item });