miolo-react 3.0.0-beta.208 → 3.0.0-beta.209
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/package.json +2 -2
- package/src/ssr/useSsrDataOrReload.mjs +18 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "miolo-react",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.209",
|
|
4
4
|
"description": "React utils for miolo",
|
|
5
5
|
"author": "Donato Lorenzo <donato@afialapis.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"prepublishOnly": "npm run lint"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"idb-keyval": "^6.2.
|
|
33
|
+
"idb-keyval": "^6.2.5",
|
|
34
34
|
"miolo-cli": "../miolo-cli"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
@@ -112,13 +112,19 @@ const useSsrDataOrReload = (context, miolo, name, options) => {
|
|
|
112
112
|
setStatus("loaded")
|
|
113
113
|
}, [status, context, fetcher, loader, url, params, parseData, name, cache])
|
|
114
114
|
|
|
115
|
-
const
|
|
115
|
+
const invalidateCache = useCallback((tName, callback = undefined) => {
|
|
116
116
|
if (typeof window !== "undefined") {
|
|
117
117
|
import("idb-keyval").then(({ del }) => {
|
|
118
|
-
del(`ssr-cache-${
|
|
118
|
+
del(`ssr-cache-${tName}`)
|
|
119
|
+
.catch(() => {})
|
|
120
|
+
.then(() => {
|
|
121
|
+
if (callback) {
|
|
122
|
+
callback()
|
|
123
|
+
}
|
|
124
|
+
})
|
|
119
125
|
})
|
|
120
126
|
}
|
|
121
|
-
}, [
|
|
127
|
+
}, [])
|
|
122
128
|
|
|
123
129
|
useEffect(() => {
|
|
124
130
|
let mounted = true
|
|
@@ -198,20 +204,22 @@ const useSsrDataOrReload = (context, miolo, name, options) => {
|
|
|
198
204
|
|
|
199
205
|
socket.on("ssr-invalidate", (data) => {
|
|
200
206
|
logger.info(`[ssr] ssr-invalidate ${data.name}`)
|
|
207
|
+
invalidateCache(data.name)
|
|
208
|
+
})
|
|
201
209
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
210
|
+
socket.on("ssr-refresh", (data) => {
|
|
211
|
+
logger.info(`[ssr] ssr-refresh ${data.name}`)
|
|
212
|
+
invalidateCache(data.name, () => {
|
|
213
|
+
refreshSsrData()
|
|
214
|
+
})
|
|
207
215
|
})
|
|
208
|
-
}, [socket, socketInited, logger])
|
|
216
|
+
}, [socket, socketInited, logger, invalidateCache, refreshSsrData])
|
|
209
217
|
|
|
210
218
|
return {
|
|
211
219
|
data: ssrData,
|
|
212
220
|
setData: updateSsrData,
|
|
213
221
|
refresh: refreshSsrData,
|
|
214
|
-
invalidate,
|
|
222
|
+
invalidate: (callback) => invalidateCache(name, callback),
|
|
215
223
|
error,
|
|
216
224
|
ok: error === undefined,
|
|
217
225
|
ready: status === "loaded"
|