File tree Expand file tree Collapse file tree 3 files changed +56
-2
lines changed Expand file tree Collapse file tree 3 files changed +56
-2
lines changed Original file line number Diff line number Diff line change @@ -86,6 +86,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
86
86
87
87
// Add plugin
88
88
addPlugin ( resolver . resolve ( 'runtime/plugin' ) )
89
+ addPlugin ( resolver . resolve ( 'runtime/plugin.client' ) )
89
90
90
91
// Add components auto import
91
92
if ( mergedOptions . injectComponents ) {
Original file line number Diff line number Diff line change
1
+ import { defineNuxtPlugin } from '#app'
2
+
3
+ // import { name as pkgName } from '../../package.json'
4
+ import { PrismicModuleOptions } from '../types'
5
+
6
+ // TODO: Revert when fixed
7
+ const pkgName = '@nuxtjs/prismic'
8
+
9
+ export default defineNuxtPlugin ( ( nuxtApp ) => {
10
+ const mergedOptions : PrismicModuleOptions =
11
+ nuxtApp . payload . config [ pkgName ] ??
12
+ nuxtApp . payload . config . public [ pkgName ] ??
13
+ { }
14
+
15
+ // Hot reload preview updates
16
+ if ( mergedOptions . preview ) {
17
+ window . addEventListener ( 'prismicPreviewUpdate' , ( event ) => {
18
+ if ( refreshNuxtData ) {
19
+ event . preventDefault ( )
20
+ refreshNuxtData ( )
21
+ }
22
+ } )
23
+ }
24
+ } )
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ export default defineNuxtPlugin((nuxtApp) => {
22
22
nuxtApp . payload . config . public [ pkgName ] ??
23
23
{ }
24
24
25
- nuxtApp . vueApp . use ( createPrismic ( {
25
+ const prismicPlugin = createPrismic ( {
26
26
...mergedOptions ,
27
27
client,
28
28
linkResolver,
@@ -33,5 +33,34 @@ export default defineNuxtPlugin((nuxtApp) => {
33
33
linkExternalComponent : NuxtLink ,
34
34
...mergedOptions . components
35
35
}
36
- } ) )
36
+ } )
37
+
38
+ nuxtApp . vueApp . use ( prismicPlugin )
39
+
40
+ if ( mergedOptions . preview ) {
41
+ const previewCookie = useCookie ( 'io.prismic.preview' ) . value
42
+
43
+ // Update client with req when running server side
44
+ if ( process . server ) {
45
+ prismicPlugin . client . enableAutoPreviewsFromReq ( useRequestEvent ( ) ?. req )
46
+ }
47
+
48
+ if ( previewCookie ) {
49
+ try {
50
+ const session = typeof previewCookie === 'string' ? JSON . parse ( decodeURIComponent ( previewCookie ) ) : previewCookie
51
+
52
+ if ( Object . keys ( session ) . some ( key =>
53
+ key in session &&
54
+ typeof session [ key ] === 'object' &&
55
+ session [ key ] !== null &&
56
+ 'preview' in session [ key ] &&
57
+ session [ key ] . preview )
58
+ ) {
59
+ refreshNuxtData ( )
60
+ }
61
+ } catch ( error ) {
62
+ // noop
63
+ }
64
+ }
65
+ }
37
66
} )
You can’t perform that action at this time.
0 commit comments