diff --git a/apps/web/src/stores/editor-store.ts b/apps/web/src/stores/editor-store.ts index 50344d2e2..fbd7390d4 100644 --- a/apps/web/src/stores/editor-store.ts +++ b/apps/web/src/stores/editor-store.ts @@ -286,7 +286,8 @@ class EditorStore extends BaseStore { const clearIds: string[] = []; for (const session of sessions) { if (session.type === "new") continue; - if (session.note.id !== item.id && session.note.contentId !== item.id) continue; + if (session.note.id !== item.id && session.note.contentId !== item.id) + continue; if (isDeleted(item) || isTrashItem(item)) clearIds.push(session.tabId); // if a note becomes conflicted, reopen the session @@ -331,6 +332,13 @@ class EditorStore extends BaseStore { !item.readonly ) openSession(session.note.id, { force: true, silent: true }); + // if a note is made readonly, reopen the session + else if ( + session.type !== "readonly" && + item.type === "note" && + item.readonly + ) + openSession(session.note.id, { force: true, silent: true }); // update the note in all sessions else if (item.type === "note") { updateSession( diff --git a/packages/core/src/api/user-manager.ts b/packages/core/src/api/user-manager.ts index e97dead3f..8f50d82b0 100644 --- a/packages/core/src/api/user-manager.ts +++ b/packages/core/src/api/user-manager.ts @@ -404,7 +404,9 @@ class UserManager { const masterKey = await this.getMasterKey(); if (!masterKey) return; - const dataEncryptionKey = await this.keyManager.get("dataEncryptionKey"); + const dataEncryptionKey = await this.keyManager.get("dataEncryptionKey", { + refetchUser: false + }); if (!dataEncryptionKey) return [ { @@ -415,7 +417,10 @@ class UserManager { const keys: { version: KeyVersion; key: SerializedKey }[] = []; const legacyDataEncryptionKey = await this.keyManager.get( - "legacyDataEncryptionKey" + "legacyDataEncryptionKey", + { + refetchUser: false + } ); if (legacyDataEncryptionKey) keys.push({