From 2d1837882355a84b2fe58d6c1991433856dd466a Mon Sep 17 00:00:00 2001 From: mTvare Date: Thu, 13 Mar 2025 06:24:52 +0530 Subject: [PATCH] Fix autosaved document ID being incorrectly added to browser storage at the wrong time without its document data (#2426) * Remove deleted document instead of fetching documents in portfolio * npm run lint-fix --------- Co-authored-by: Keavon Chambers --- frontend/src/io-managers/persistence.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/frontend/src/io-managers/persistence.ts b/frontend/src/io-managers/persistence.ts index 1981e76d..2cdb3829 100644 --- a/frontend/src/io-managers/persistence.ts +++ b/frontend/src/io-managers/persistence.ts @@ -53,17 +53,27 @@ export function createPersistenceManager(editor: Editor, portfolio: PortfolioSta graphiteStore, ); + await update( + "documents_tab_order", + (old) => { + const order = old || []; + return order.filter((docId) => docId !== id); + }, + graphiteStore, + ); + const documentCount = getFromStore(portfolio).documents.length; if (documentCount > 0) { const documentIndex = getFromStore(portfolio).activeDocumentIndex; - const documentId = getFromStore(portfolio).documents[documentIndex].id; + const documentId = String(getFromStore(portfolio).documents[documentIndex].id); - await storeCurrentDocumentId(String(documentId)); + const tabOrder = (await get("documents_tab_order", graphiteStore)) || []; + if (tabOrder.includes(documentId)) { + await storeCurrentDocumentId(documentId); + } } else { await del("current_document_id", graphiteStore); } - - await storeDocumentOrder(); } async function loadFirstDocument() {