diff --git a/packages/prismic/src/composables/usePrismic/index.ts b/packages/prismic/src/composables/usePrismic/index.ts index 6b3c348d8..1514a1a8a 100644 --- a/packages/prismic/src/composables/usePrismic/index.ts +++ b/packages/prismic/src/composables/usePrismic/index.ts @@ -1,5 +1,6 @@ import { ref, Ref } from '@vue/composition-api'; import { PrismicQuery, PrismicMeta, PrismicOptions } from '../../types'; +import { useSSR } from '../../../../core/core/src/utils'; import { Document } from 'prismic-javascript/d.ts/documents'; import loadDocuments from './loadDocuments'; @@ -13,19 +14,23 @@ interface UsePrismic { search: Search; } -export default function usePrismic(): UsePrismic { +export default function usePrismic(cacheId?: string): UsePrismic { + const { initialState, saveToInitialState } = useSSR(cacheId); const loading = ref(false); const error = ref(null); - const doc: Ref = ref({}); + const doc: Ref = ref(initialState || {}); const meta: Ref = ref(null); const search: Search = async (query: PrismicQuery | PrismicQuery[], options: PrismicOptions = {}) => { - loading.value = true; + if (!initialState) { + loading.value = true; + } const { results, metadata } = await loadDocuments(query, options); meta.value = metadata; doc.value = results; + saveToInitialState(doc.value); loading.value = false; };