@khanacademy/wonder-blocks-core 4.3.1 → 4.4.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @khanacademy/wonder-blocks-core
2
2
 
3
+ ## 4.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6ee20af9: Add `useOnline` hook to encapsulate navigator.onLine and the offline/online events
8
+
9
+ ## 4.3.2
10
+
11
+ ### Patch Changes
12
+
13
+ - 5f4a4297: Make dependency on `flow-enums-runtime` explicit
14
+ - 2b96fd59: Change flow-enums-runtime to be peer dependencies
15
+
3
16
  ## 4.3.1
4
17
 
5
18
  ## 4.3.0
package/dist/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import _extends from '@babel/runtime/helpers/extends';
2
2
  import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';
3
3
  import * as React from 'react';
4
- import { useContext as useContext$1, useRef } from 'react';
4
+ import { useContext as useContext$1, useRef, useEffect as useEffect$1 } from 'react';
5
5
  import { StyleSheet, css } from 'aphrodite';
6
6
 
7
7
  function flatten(list) {
@@ -267,7 +267,9 @@ class WithSSRPlaceholder extends React.Component {
267
267
  }
268
268
 
269
269
  {
270
- console.log(`We got a render state we don't understand: "${JSON.stringify(renderState)}"`);
270
+ var _JSON$stringify;
271
+
272
+ console.log(`We got a render state we don't understand: "${(_JSON$stringify = JSON.stringify(renderState)) != null ? _JSON$stringify : ""}"`);
271
273
  return this._maybeRender(RenderState.Root);
272
274
  }
273
275
  }
@@ -438,6 +440,21 @@ const useForceUpdate = () => {
438
440
  return forceUpdate;
439
441
  };
440
442
 
443
+ const useOnline = () => {
444
+ const forceUpdate = useForceUpdate();
445
+ useEffect$1(() => {
446
+ const handleChange = () => forceUpdate();
447
+
448
+ window.addEventListener("online", handleChange);
449
+ window.addEventListener("offline", handleChange);
450
+ return () => {
451
+ window.removeEventListener("online", handleChange);
452
+ window.removeEventListener("offline", handleChange);
453
+ };
454
+ }, [forceUpdate]);
455
+ return navigator.onLine;
456
+ };
457
+
441
458
  const {
442
459
  useContext,
443
460
  useEffect,
@@ -470,4 +487,4 @@ RenderStateRoot.defaultProps = {
470
487
  throwIfNested: true
471
488
  };
472
489
 
473
- export { IDProvider, RenderStateRoot, server as Server, Text, UniqueIDProvider, View, WithSSRPlaceholder, addStyle, useForceUpdate, useUniqueIdWithMock, useUniqueIdWithoutMock };
490
+ export { IDProvider, RenderStateRoot, server as Server, Text, UniqueIDProvider, View, WithSSRPlaceholder, addStyle, useForceUpdate, useOnline, useUniqueIdWithMock, useUniqueIdWithoutMock };