@dhis2/app-service-offline 3.10.0-alpha.5 → 3.10.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.
@@ -51,6 +51,18 @@ Object.defineProperty(exports, "useOnlineStatusMessage", {
51
51
  return _onlineStatusMessage.useOnlineStatusMessage;
52
52
  }
53
53
  });
54
+ Object.defineProperty(exports, "useOnlineStatusMessageValue", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _onlineStatusMessage.useOnlineStatusMessageValue;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "useSetOnlineStatusMessage", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _onlineStatusMessage.useSetOnlineStatusMessage;
64
+ }
65
+ });
54
66
 
55
67
  var _offlineProvider = require("./lib/offline-provider");
56
68
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useOnlineStatusMessage = exports.OnlineStatusMessageProvider = void 0;
6
+ exports.useSetOnlineStatusMessage = exports.useOnlineStatusMessageValue = exports.useOnlineStatusMessage = exports.OnlineStatusMessageProvider = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
@@ -11,37 +11,47 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
11
11
 
12
12
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
13
 
14
- const defaultApi = {
15
- onlineStatusMessage: undefined,
16
- setOnlineStatusMessage: () => undefined
14
+ // 'get' and 'set' contexts are separated so 'setter' consumers that don't
15
+ // actually need the value don't have to rerender when the value changes:
16
+ const OnlineStatusMessageValueContext = /*#__PURE__*/_react.default.createContext(undefined);
17
+
18
+ const SetOnlineStatusMessageContext = /*#__PURE__*/_react.default.createContext(() => undefined);
19
+
20
+ const OnlineStatusMessageProvider = (_ref) => {
21
+ let {
22
+ children
23
+ } = _ref;
24
+ const [onlineStatusMessage, setOnlineStatusMessage] = (0, _react.useState)(); // note: not undefined
25
+
26
+ return /*#__PURE__*/_react.default.createElement(OnlineStatusMessageValueContext.Provider, {
27
+ value: onlineStatusMessage
28
+ }, /*#__PURE__*/_react.default.createElement(SetOnlineStatusMessageContext.Provider, {
29
+ value: setOnlineStatusMessage
30
+ }, children));
17
31
  };
18
32
 
19
- const OnlineStatusMessageContext = /*#__PURE__*/_react.default.createContext(defaultApi);
33
+ exports.OnlineStatusMessageProvider = OnlineStatusMessageProvider;
34
+
35
+ const useOnlineStatusMessageValue = () => {
36
+ return (0, _react.useContext)(OnlineStatusMessageValueContext);
37
+ };
38
+
39
+ exports.useOnlineStatusMessageValue = useOnlineStatusMessageValue;
40
+
41
+ const useSetOnlineStatusMessage = () => {
42
+ return (0, _react.useContext)(SetOnlineStatusMessageContext);
43
+ }; // combination of both getter and setter (also provides backward compatability)
44
+
45
+
46
+ exports.useSetOnlineStatusMessage = useSetOnlineStatusMessage;
20
47
 
21
48
  const useOnlineStatusMessage = () => {
22
- const {
23
- onlineStatusMessage,
24
- setOnlineStatusMessage
25
- } = (0, _react.useContext)(OnlineStatusMessageContext);
49
+ const onlineStatusMessage = useOnlineStatusMessageValue();
50
+ const setOnlineStatusMessage = useSetOnlineStatusMessage();
26
51
  return {
27
52
  onlineStatusMessage,
28
53
  setOnlineStatusMessage
29
54
  };
30
55
  };
31
56
 
32
- exports.useOnlineStatusMessage = useOnlineStatusMessage;
33
-
34
- const OnlineStatusMessageProvider = (_ref) => {
35
- let {
36
- children
37
- } = _ref;
38
- const [onlineStatusMessage, setOnlineStatusMessage] = (0, _react.useState)();
39
- return /*#__PURE__*/_react.default.createElement(OnlineStatusMessageContext.Provider, {
40
- value: {
41
- onlineStatusMessage,
42
- setOnlineStatusMessage
43
- }
44
- }, children);
45
- };
46
-
47
- exports.OnlineStatusMessageProvider = OnlineStatusMessageProvider;
57
+ exports.useOnlineStatusMessage = useOnlineStatusMessage;
package/build/es/index.js CHANGED
@@ -3,6 +3,6 @@ export { CacheableSection, useCacheableSection } from './lib/cacheable-section';
3
3
  export { useCachedSections } from './lib/cacheable-section-state'; // Use "useOnlineStatus" name for backwards compatibility
4
4
 
5
5
  export { useNetworkStatus as useOnlineStatus } from './lib/network-status';
6
- export { useOnlineStatusMessage } from './lib/online-status-message';
6
+ export { useOnlineStatusMessage, useSetOnlineStatusMessage, useOnlineStatusMessageValue } from './lib/online-status-message';
7
7
  export { clearSensitiveCaches } from './lib/clear-sensitive-caches';
8
8
  export { useDhis2ConnectionStatus } from './lib/dhis2-connection-status';
@@ -1,28 +1,32 @@
1
1
  import React, { useContext, useState } from 'react';
2
- const defaultApi = {
3
- onlineStatusMessage: undefined,
4
- setOnlineStatusMessage: () => undefined
2
+ // 'get' and 'set' contexts are separated so 'setter' consumers that don't
3
+ // actually need the value don't have to rerender when the value changes:
4
+ const OnlineStatusMessageValueContext = /*#__PURE__*/React.createContext(undefined);
5
+ const SetOnlineStatusMessageContext = /*#__PURE__*/React.createContext(() => undefined);
6
+ export const OnlineStatusMessageProvider = (_ref) => {
7
+ let {
8
+ children
9
+ } = _ref;
10
+ const [onlineStatusMessage, setOnlineStatusMessage] = useState(); // note: not undefined
11
+
12
+ return /*#__PURE__*/React.createElement(OnlineStatusMessageValueContext.Provider, {
13
+ value: onlineStatusMessage
14
+ }, /*#__PURE__*/React.createElement(SetOnlineStatusMessageContext.Provider, {
15
+ value: setOnlineStatusMessage
16
+ }, children));
17
+ };
18
+ export const useOnlineStatusMessageValue = () => {
19
+ return useContext(OnlineStatusMessageValueContext);
5
20
  };
6
- const OnlineStatusMessageContext = /*#__PURE__*/React.createContext(defaultApi);
21
+ export const useSetOnlineStatusMessage = () => {
22
+ return useContext(SetOnlineStatusMessageContext);
23
+ }; // combination of both getter and setter (also provides backward compatability)
24
+
7
25
  export const useOnlineStatusMessage = () => {
8
- const {
9
- onlineStatusMessage,
10
- setOnlineStatusMessage
11
- } = useContext(OnlineStatusMessageContext);
26
+ const onlineStatusMessage = useOnlineStatusMessageValue();
27
+ const setOnlineStatusMessage = useSetOnlineStatusMessage();
12
28
  return {
13
29
  onlineStatusMessage,
14
30
  setOnlineStatusMessage
15
31
  };
16
- };
17
- export const OnlineStatusMessageProvider = (_ref) => {
18
- let {
19
- children
20
- } = _ref;
21
- const [onlineStatusMessage, setOnlineStatusMessage] = useState();
22
- return /*#__PURE__*/React.createElement(OnlineStatusMessageContext.Provider, {
23
- value: {
24
- onlineStatusMessage,
25
- setOnlineStatusMessage
26
- }
27
- }, children);
28
32
  };
@@ -2,6 +2,6 @@ export { OfflineProvider } from './lib/offline-provider';
2
2
  export { CacheableSection, useCacheableSection } from './lib/cacheable-section';
3
3
  export { useCachedSections } from './lib/cacheable-section-state';
4
4
  export { useNetworkStatus as useOnlineStatus } from './lib/network-status';
5
- export { useOnlineStatusMessage } from './lib/online-status-message';
5
+ export { useOnlineStatusMessage, useSetOnlineStatusMessage, useOnlineStatusMessageValue, } from './lib/online-status-message';
6
6
  export { clearSensitiveCaches } from './lib/clear-sensitive-caches';
7
7
  export { useDhis2ConnectionStatus } from './lib/dhis2-connection-status';
@@ -1,6 +1,12 @@
1
- import { ReactElement, ReactNode } from 'react';
2
- import { OnlineStatusMessageContextAPI } from '../types';
3
- export declare const useOnlineStatusMessage: () => OnlineStatusMessageContextAPI;
1
+ import React, { ReactElement, ReactNode } from 'react';
2
+ declare type SetOnlineStatusMessage = (message: ReactNode) => void;
4
3
  export declare const OnlineStatusMessageProvider: ({ children, }: {
5
4
  children: ReactNode;
6
5
  }) => ReactElement;
6
+ export declare const useOnlineStatusMessageValue: () => React.ReactNode;
7
+ export declare const useSetOnlineStatusMessage: () => SetOnlineStatusMessage;
8
+ export declare const useOnlineStatusMessage: () => {
9
+ onlineStatusMessage: React.ReactNode;
10
+ setOnlineStatusMessage: SetOnlineStatusMessage;
11
+ };
12
+ export {};
@@ -1,4 +1,3 @@
1
- import { ReactNode } from 'react';
2
1
  export declare type RecordingState = 'default' | 'pending' | 'error' | 'recording';
3
2
  export interface GlobalStateStoreMutation {
4
3
  (state: any): any;
@@ -44,8 +43,4 @@ export interface OfflineInterface {
44
43
  getCachedSections: () => Promise<IndexedDBCachedSection[]>;
45
44
  removeSection: (id: string) => Promise<boolean>;
46
45
  }
47
- export declare type OnlineStatusMessageContextAPI = {
48
- onlineStatusMessage?: ReactNode;
49
- setOnlineStatusMessage: (additionalInfo: ReactNode) => void;
50
- };
51
46
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dhis2/app-service-offline",
3
3
  "description": "A runtime service for online/offline detection and offline caching",
4
- "version": "3.10.0-alpha.5",
4
+ "version": "3.10.0",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/es/index.js",
7
7
  "types": "build/types/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "coverage": "yarn test --coverage"
34
34
  },
35
35
  "peerDependencies": {
36
- "@dhis2/app-service-config": "3.10.0-alpha.5",
36
+ "@dhis2/app-service-config": "3.10.0",
37
37
  "prop-types": "^15.7.2",
38
38
  "react": "^16.8.6",
39
39
  "react-dom": "^16.8.6"