diff --git a/nuxt4/app/composables/useIndexedDB.ts b/nuxt4/app/composables/useIndexedDB.ts index b26c034..4d75bfa 100644 --- a/nuxt4/app/composables/useIndexedDB.ts +++ b/nuxt4/app/composables/useIndexedDB.ts @@ -49,6 +49,10 @@ function openDatabase(): Promise { */ async function saveSession(sesion: SesionCatacion): Promise { try { + // Clonar la sesión para eliminar los proxies reactivos de Vue + // antes de guardar en IndexedDB + const sesionClonada = JSON.parse(JSON.stringify(sesion)) as SesionCatacion + const db = await openDatabase() const transaction = db.transaction([STORE_NAME], 'readwrite') const objectStore = transaction.objectStore(STORE_NAME) @@ -62,7 +66,7 @@ async function saveSession(sesion: SesionCatacion): Promise { // Guardar la nueva sesión await new Promise((resolve, reject) => { - const addRequest = objectStore.add(sesion) + const addRequest = objectStore.add(sesionClonada) addRequest.onsuccess = () => resolve() addRequest.onerror = () => reject(new Error('Error al guardar la sesión')) }) @@ -215,12 +219,16 @@ async function updateSession(sesion: SesionCatacion): Promise { // Actualizar timestamp de modificación sesion.modificadoEn = Date.now() + // Clonar la sesión para eliminar los proxies reactivos de Vue + // antes de guardar en IndexedDB + const sesionClonada = JSON.parse(JSON.stringify(sesion)) as SesionCatacion + const db = await openDatabase() const transaction = db.transaction([STORE_NAME], 'readwrite') const objectStore = transaction.objectStore(STORE_NAME) await new Promise((resolve, reject) => { - const putRequest = objectStore.put(sesion) + const putRequest = objectStore.put(sesionClonada) putRequest.onsuccess = () => resolve() putRequest.onerror = () => reject(new Error('Error al actualizar la sesión')) })