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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miolo-react",
3
- "version": "3.0.0-beta.208",
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.4",
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 invalidate = useCallback(() => {
115
+ const invalidateCache = useCallback((tName, callback = undefined) => {
116
116
  if (typeof window !== "undefined") {
117
117
  import("idb-keyval").then(({ del }) => {
118
- del(`ssr-cache-${name}`).catch(() => {})
118
+ del(`ssr-cache-${tName}`)
119
+ .catch(() => {})
120
+ .then(() => {
121
+ if (callback) {
122
+ callback()
123
+ }
124
+ })
119
125
  })
120
126
  }
121
- }, [name])
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
- if (typeof window !== "undefined") {
203
- import("idb-keyval").then(({ del }) => {
204
- del(`ssr-cache-${data.name}`).catch(() => {})
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"