11import { get } from "svelte/store" ;
22import type { PortfolioStore } from "/src/stores/portfolio" ;
33import type { MessageBody } from "/src/subscriptions-router" ;
4- import type { EditorWrapper } from "/wrapper/pkg/graphite_wasm_wrapper" ;
4+ import type { DocumentDetails , EditorWrapper } from "/wrapper/pkg/graphite_wasm_wrapper" ;
55
66const PERSISTENCE_DB = "graphite" ;
77const PERSISTENCE_STORE = "store" ;
@@ -72,13 +72,13 @@ export async function loadFirstDocument(editor: EditorWrapper) {
7272
7373 if ( currentDocumentId !== undefined && String ( currentDocumentId ) in previouslySavedDocuments ) {
7474 const doc = previouslySavedDocuments [ String ( currentDocumentId ) ] ;
75- editor . openAutoSavedDocument ( doc . documentId , doc . details . name , doc . details . isSaved , doc . document , false ) ;
75+ editor . openAutoSavedDocument ( doc . documentId , doc . details . name , savedStatus ( doc . details ) . isSaved , doc . document , false ) ;
7676 editor . selectDocument ( currentDocumentId ) ;
7777 } else {
7878 const len = orderedSavedDocuments . length ;
7979 if ( len > 0 ) {
8080 const doc = orderedSavedDocuments [ len - 1 ] ;
81- editor . openAutoSavedDocument ( doc . documentId , doc . details . name , doc . details . isSaved , doc . document , false ) ;
81+ editor . openAutoSavedDocument ( doc . documentId , doc . details . name , savedStatus ( doc . details ) . isSaved , doc . document , false ) ;
8282 editor . selectDocument ( doc . documentId ) ;
8383 }
8484 }
@@ -108,13 +108,11 @@ export async function loadRestDocuments(editor: EditorWrapper) {
108108 if ( currentIndex !== - 1 && currentDocumentId !== undefined ) {
109109 for ( let i = currentIndex - 1 ; i >= 0 ; i -- ) {
110110 const { documentId, document, details } = orderedSavedDocuments [ i ] ;
111- const { name, isSaved } = details ;
112- editor . openAutoSavedDocument ( documentId , name , isSaved , document , true ) ;
111+ editor . openAutoSavedDocument ( documentId , details . name , savedStatus ( details ) . isSaved , document , true ) ;
113112 }
114113 for ( let i = currentIndex + 1 ; i < orderedSavedDocuments . length ; i ++ ) {
115114 const { documentId, document, details } = orderedSavedDocuments [ i ] ;
116- const { name, isSaved } = details ;
117- editor . openAutoSavedDocument ( documentId , name , isSaved , document , false ) ;
115+ editor . openAutoSavedDocument ( documentId , details . name , savedStatus ( details ) . isSaved , document , false ) ;
118116 }
119117
120118 editor . selectDocument ( currentDocumentId ) ;
@@ -125,8 +123,7 @@ export async function loadRestDocuments(editor: EditorWrapper) {
125123
126124 for ( let i = length - 2 ; i >= 0 ; i -- ) {
127125 const { documentId, document, details } = orderedSavedDocuments [ i ] ;
128- const { name, isSaved } = details ;
129- editor . openAutoSavedDocument ( documentId , name , isSaved , document , true ) ;
126+ editor . openAutoSavedDocument ( documentId , details . name , savedStatus ( details ) . isSaved , document , true ) ;
130127 }
131128
132129 if ( length > 0 ) editor . selectDocument ( orderedSavedDocuments [ length - 1 ] . documentId ) ;
@@ -236,3 +233,13 @@ async function databaseUpdate<T>(key: string, updater: (existing: T | undefined)
236233 transaction . onerror = ( ) => reject ( transaction . error ) ;
237234 } ) ;
238235}
236+
237+ // TODO: Eventually remove this document upgrade code
238+ export function savedStatus ( details : DocumentDetails ) : { isSaved : boolean ; isAutoSaved : boolean } {
239+ const unknownDetails : unknown = details ;
240+ if ( typeof unknownDetails === "object" && unknownDetails !== null && "isSaved" in unknownDetails && "isAutoSaved" in unknownDetails ) {
241+ return { isSaved : Boolean ( unknownDetails . isSaved ) , isAutoSaved : Boolean ( unknownDetails . isAutoSaved ) } ;
242+ }
243+
244+ return { isSaved : details . is_saved , isAutoSaved : details . is_auto_saved } ;
245+ }
0 commit comments