From bc01cde3c677cc4225afedea4a1cefc3c82d652c Mon Sep 17 00:00:00 2001 From: Ahad Birang Date: Thu, 6 Oct 2022 14:37:23 +0200 Subject: [PATCH] fix: ignore built content in preview mode --- src/runtime/composables/client-db.ts | 6 ++++++ src/runtime/preview/preview-plugin.ts | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/runtime/composables/client-db.ts b/src/runtime/composables/client-db.ts index 9c2aa7429..67d4febf8 100644 --- a/src/runtime/composables/client-db.ts +++ b/src/runtime/composables/client-db.ts @@ -24,6 +24,12 @@ export function createDB (storage: Storage) { // Merge preview items const previewToken = getPreview() if (previewToken) { + // Ignore cache content if preview requires it + const previewMeta: any = await storage.getItem(`${previewToken}$`).then(data => data || {}) + if (previewMeta.ignoreBuiltContents) { + keys.clear() + } + const previewKeys = await storage.getKeys(`${previewToken}:`) const previewContents = await Promise.all(previewKeys.map(key => storage.getItem(key) as Promise)) for (const pItem of previewContents) { diff --git a/src/runtime/preview/preview-plugin.ts b/src/runtime/preview/preview-plugin.ts index 28c6779ba..f405f5488 100644 --- a/src/runtime/preview/preview-plugin.ts +++ b/src/runtime/preview/preview-plugin.ts @@ -23,9 +23,19 @@ export default defineNuxtPlugin((nuxt) => { // Fill store with preview content const items = [ + ...(data.files || []), ...data.additions, ...data.deletions.map(d => ({ ...d, parsed: { _id: d.path.replace(/\//g, ':'), __deleted: true } })) ] + + // Set preview meta + window.localStorage.setItem( + `@content:${token}$`, + JSON.stringify({ + ignoreBuiltContents: (data.files || []).length !== 0 + }) + ) + for (const item of items) { window.localStorage.setItem(`@content:${token}:${item.parsed._id}`, JSON.stringify(item.parsed)) }