@prismetic/next-preview-core 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +16 -2
- package/dist/index.mjs +17 -3
- package/package.json +1 -1
- package/src/PreviewProviders.tsx +14 -1
package/dist/index.d.mts
CHANGED
|
@@ -10,10 +10,12 @@ import React$1 from 'react';
|
|
|
10
10
|
* fetched once will be served from the cache on subsequent page navigations.
|
|
11
11
|
*
|
|
12
12
|
* @param {number} [staleTime=300000] - How long (ms) cached data is considered fresh. Default: 5 minutes.
|
|
13
|
+
* @param {boolean} [refetchOnWindowFocus=false] - Whether to refetch when the browser tab regains focus. Set to true in preview to auto-refresh after editing in Strapi.
|
|
13
14
|
*/
|
|
14
|
-
declare function PreviewProviders({ children, staleTime }: {
|
|
15
|
+
declare function PreviewProviders({ children, staleTime, refetchOnWindowFocus, }: {
|
|
15
16
|
children: React.ReactNode;
|
|
16
17
|
staleTime?: number;
|
|
18
|
+
refetchOnWindowFocus?: boolean;
|
|
17
19
|
}): react_jsx_runtime.JSX.Element;
|
|
18
20
|
|
|
19
21
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -10,10 +10,12 @@ import React$1 from 'react';
|
|
|
10
10
|
* fetched once will be served from the cache on subsequent page navigations.
|
|
11
11
|
*
|
|
12
12
|
* @param {number} [staleTime=300000] - How long (ms) cached data is considered fresh. Default: 5 minutes.
|
|
13
|
+
* @param {boolean} [refetchOnWindowFocus=false] - Whether to refetch when the browser tab regains focus. Set to true in preview to auto-refresh after editing in Strapi.
|
|
13
14
|
*/
|
|
14
|
-
declare function PreviewProviders({ children, staleTime }: {
|
|
15
|
+
declare function PreviewProviders({ children, staleTime, refetchOnWindowFocus, }: {
|
|
15
16
|
children: React.ReactNode;
|
|
16
17
|
staleTime?: number;
|
|
18
|
+
refetchOnWindowFocus?: boolean;
|
|
17
19
|
}): react_jsx_runtime.JSX.Element;
|
|
18
20
|
|
|
19
21
|
/**
|
package/dist/index.js
CHANGED
|
@@ -30,18 +30,32 @@ module.exports = __toCommonJS(index_exports);
|
|
|
30
30
|
var import_react_query = require("@tanstack/react-query");
|
|
31
31
|
var import_react = require("react");
|
|
32
32
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
|
-
function PreviewProviders({
|
|
33
|
+
function PreviewProviders({
|
|
34
|
+
children,
|
|
35
|
+
staleTime = 5 * 60 * 1e3,
|
|
36
|
+
refetchOnWindowFocus = false
|
|
37
|
+
}) {
|
|
34
38
|
const [queryClient] = (0, import_react.useState)(
|
|
35
39
|
() => new import_react_query.QueryClient({
|
|
36
40
|
defaultOptions: {
|
|
37
41
|
queries: {
|
|
38
42
|
staleTime,
|
|
39
|
-
refetchOnWindowFocus
|
|
43
|
+
refetchOnWindowFocus,
|
|
40
44
|
retry: 1
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
})
|
|
44
48
|
);
|
|
49
|
+
(0, import_react.useEffect)(() => {
|
|
50
|
+
if (!refetchOnWindowFocus) return;
|
|
51
|
+
const handleFocus = () => {
|
|
52
|
+
if (document.visibilityState === "visible") {
|
|
53
|
+
queryClient.invalidateQueries();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
document.addEventListener("visibilitychange", handleFocus);
|
|
57
|
+
return () => document.removeEventListener("visibilitychange", handleFocus);
|
|
58
|
+
}, [queryClient, refetchOnWindowFocus]);
|
|
45
59
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children });
|
|
46
60
|
}
|
|
47
61
|
|
package/dist/index.mjs
CHANGED
|
@@ -2,20 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
// src/PreviewProviders.tsx
|
|
4
4
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
5
|
-
import { useState } from "react";
|
|
5
|
+
import { useState, useEffect } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
function PreviewProviders({
|
|
7
|
+
function PreviewProviders({
|
|
8
|
+
children,
|
|
9
|
+
staleTime = 5 * 60 * 1e3,
|
|
10
|
+
refetchOnWindowFocus = false
|
|
11
|
+
}) {
|
|
8
12
|
const [queryClient] = useState(
|
|
9
13
|
() => new QueryClient({
|
|
10
14
|
defaultOptions: {
|
|
11
15
|
queries: {
|
|
12
16
|
staleTime,
|
|
13
|
-
refetchOnWindowFocus
|
|
17
|
+
refetchOnWindowFocus,
|
|
14
18
|
retry: 1
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
})
|
|
18
22
|
);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!refetchOnWindowFocus) return;
|
|
25
|
+
const handleFocus = () => {
|
|
26
|
+
if (document.visibilityState === "visible") {
|
|
27
|
+
queryClient.invalidateQueries();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
document.addEventListener("visibilitychange", handleFocus);
|
|
31
|
+
return () => document.removeEventListener("visibilitychange", handleFocus);
|
|
32
|
+
}, [queryClient, refetchOnWindowFocus]);
|
|
19
33
|
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children });
|
|
20
34
|
}
|
|
21
35
|
|
package/package.json
CHANGED
package/src/PreviewProviders.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
5
|
-
import { useState } from "react";
|
|
5
|
+
import { useState, useEffect } from "react";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* React Query provider for Preview Mode.
|
|
@@ -37,6 +37,19 @@ export function PreviewProviders({
|
|
|
37
37
|
})
|
|
38
38
|
);
|
|
39
39
|
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (!refetchOnWindowFocus) return;
|
|
42
|
+
|
|
43
|
+
const handleFocus = () => {
|
|
44
|
+
if (document.visibilityState === "visible") {
|
|
45
|
+
queryClient.invalidateQueries();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
document.addEventListener("visibilitychange", handleFocus);
|
|
50
|
+
return () => document.removeEventListener("visibilitychange", handleFocus);
|
|
51
|
+
}, [queryClient, refetchOnWindowFocus]);
|
|
52
|
+
|
|
40
53
|
return (
|
|
41
54
|
<QueryClientProvider client={queryClient}>
|
|
42
55
|
{children}
|