miolo-react 3.0.0-beta.207 → 3.0.0-beta.208

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.207",
3
+ "version": "3.0.0-beta.208",
4
4
  "description": "React utils for miolo",
5
5
  "author": "Donato Lorenzo <donato@afialapis.com>",
6
6
  "contributors": [
@@ -11,7 +11,7 @@ const makeSerializable = (obj) => {
11
11
  }
12
12
 
13
13
  const useSsrDataOrReload = (context, miolo, name, options) => {
14
- const { fetcher } = miolo
14
+ const { fetcher, socket, logger } = miolo
15
15
  const {
16
16
  defval = [],
17
17
  loader = undefined,
@@ -47,9 +47,9 @@ const useSsrDataOrReload = (context, miolo, name, options) => {
47
47
  const [ssrData, setSsrData] = useState(
48
48
  parseData(ssrDataFromContext !== undefined ? ssrDataFromContext : defval)
49
49
  )
50
-
51
50
  const [status, setStatus] = useState(ssrDataFromContext !== undefined ? "loaded" : "idle")
52
51
  const [error, setError] = useState(undefined)
52
+ const [socketInited, setSocketInited] = useState(false)
53
53
 
54
54
  const updateSsrData = useCallback(
55
55
  (data) => {
@@ -112,6 +112,14 @@ 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(() => {
116
+ if (typeof window !== "undefined") {
117
+ import("idb-keyval").then(({ del }) => {
118
+ del(`ssr-cache-${name}`).catch(() => {})
119
+ })
120
+ }
121
+ }, [name])
122
+
115
123
  useEffect(() => {
116
124
  let mounted = true
117
125
 
@@ -174,13 +182,30 @@ const useSsrDataOrReload = (context, miolo, name, options) => {
174
182
  }
175
183
  }, [ssrDataFromContext, name, cache])
176
184
 
177
- const invalidate = useCallback(() => {
178
- if (typeof window !== "undefined") {
179
- import("idb-keyval").then(({ del }) => {
180
- del(`ssr-cache-${name}`).catch(() => {})
181
- })
185
+ useEffect(() => {
186
+ if (socket === undefined) {
187
+ return
182
188
  }
183
- }, [name])
189
+
190
+ if (socketInited) {
191
+ return
192
+ }
193
+ setSocketInited(true)
194
+
195
+ socket.on("connect", () => {
196
+ logger.verbose("[ssr] Socket connected")
197
+ })
198
+
199
+ socket.on("ssr-invalidate", (data) => {
200
+ logger.info(`[ssr] ssr-invalidate ${data.name}`)
201
+
202
+ if (typeof window !== "undefined") {
203
+ import("idb-keyval").then(({ del }) => {
204
+ del(`ssr-cache-${data.name}`).catch(() => {})
205
+ })
206
+ }
207
+ })
208
+ }, [socket, socketInited, logger])
184
209
 
185
210
  return {
186
211
  data: ssrData,