From b938a449a5212e9645fd1f97e62b9cef872b18e4 Mon Sep 17 00:00:00 2001 From: EugeneHlushko Date: Tue, 5 May 2020 16:45:40 +0300 Subject: [PATCH] feat(ssr) Prismic package support ssr --- packages/prismic/src/composables/usePrismic/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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; };