@aws-amplify/ui-react-core-notifications 2.0.32 → 2.1.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.
@@ -1,5 +1,23 @@
1
- import { createContext } from 'react';
1
+ import React from 'react';
2
+ import { useInAppMessagingState } from './useInAppMessagingState.mjs';
2
3
 
3
- const InAppMessagingContext = createContext(null);
4
+ const InAppMessagingContext = React.createContext(null);
5
+ const ERROR_MESSAGE = '`useInAppMessaging` must be called from within `InAppMessagingProvider`';
6
+ /**
7
+ * Utility hook used to access the InAppMessagingContext values
8
+ *
9
+ * @returns {InAppMessagingContextType} InAppMessaging context values
10
+ */
11
+ function useInAppMessaging() {
12
+ const context = React.useContext(InAppMessagingContext);
13
+ if (!context) {
14
+ throw new Error(ERROR_MESSAGE);
15
+ }
16
+ return context;
17
+ }
18
+ function InAppMessagingProvider({ children, }) {
19
+ const value = useInAppMessagingState();
20
+ return (React.createElement(InAppMessagingContext.Provider, { value: value }, children));
21
+ }
4
22
 
5
- export { InAppMessagingContext as default };
23
+ export { ERROR_MESSAGE, InAppMessagingProvider, InAppMessagingContext as default, useInAppMessaging };
@@ -0,0 +1,19 @@
1
+ import { useState, useEffect, useMemo } from 'react';
2
+ import { onMessageReceived } from 'aws-amplify/in-app-messaging';
3
+
4
+ function useInAppMessagingState() {
5
+ const [message, setMessage] = useState(null);
6
+ useEffect(() => {
7
+ const listener = onMessageReceived(setMessage);
8
+ return listener.remove;
9
+ }, []);
10
+ return useMemo(() => ({
11
+ clearMessage: () => {
12
+ setMessage(null);
13
+ },
14
+ displayMessage: setMessage,
15
+ message,
16
+ }), [message]);
17
+ }
18
+
19
+ export { useInAppMessagingState };
@@ -1,9 +1,9 @@
1
1
  import { ConsoleLogger } from 'aws-amplify/utils';
2
+ import { notifyMessageInteraction } from 'aws-amplify/in-app-messaging';
2
3
  import { isNil } from '@aws-amplify/ui';
3
4
  import { RenderNothing } from '@aws-amplify/ui-react-core';
4
- import useInAppMessaging from '../useInAppMessaging/useInAppMessaging.mjs';
5
+ import { useInAppMessaging } from '../../context/InAppMessagingContext/InAppMessagingContext.mjs';
5
6
  import { getContentProps, getPositionProp } from './utils.mjs';
6
- import { notifyMessageInteraction } from 'aws-amplify/in-app-messaging';
7
7
 
8
8
  const EMPTY_PROPS = Object.freeze({});
9
9
  const logger = new ConsoleLogger('InAppMessaging');
@@ -1,5 +1,3 @@
1
- export { default as useInAppMessaging } from './InAppMessaging/hooks/useInAppMessaging/useInAppMessaging.mjs';
2
1
  export { default as useMessage } from './InAppMessaging/hooks/useMessage/useMessage.mjs';
3
- import './InAppMessaging/context/InAppMessagingContext/InAppMessagingContext.mjs';
4
- export { default as InAppMessagingProvider } from './InAppMessaging/context/InAppMessagingProvider/InAppMessagingProvider.mjs';
2
+ export { InAppMessagingProvider, useInAppMessaging } from './InAppMessaging/context/InAppMessagingContext/InAppMessagingContext.mjs';
5
3
  export { default as handleMessageAction } from './InAppMessaging/utils/handleMessageAction.mjs';
package/dist/index.js CHANGED
@@ -2,46 +2,48 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
6
- var inAppMessaging = require('aws-amplify/in-app-messaging');
7
5
  var utils = require('aws-amplify/utils');
6
+ var inAppMessaging = require('aws-amplify/in-app-messaging');
8
7
  var ui = require('@aws-amplify/ui');
9
8
  var uiReactCore = require('@aws-amplify/ui-react-core');
9
+ var React = require('react');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
13
  var React__default = /*#__PURE__*/_interopDefault(React);
14
14
 
15
- const InAppMessagingContext = React.createContext(null);
16
-
17
- function InAppMessagingProvider({ children, }) {
15
+ function useInAppMessagingState() {
18
16
  const [message, setMessage] = React.useState(null);
19
17
  React.useEffect(() => {
20
18
  const listener = inAppMessaging.onMessageReceived(setMessage);
21
19
  return listener.remove;
22
20
  }, []);
23
- const clearMessage = React.useCallback(() => {
24
- setMessage(null);
25
- }, []);
26
- const value = React.useMemo(() => ({
27
- clearMessage,
21
+ return React.useMemo(() => ({
22
+ clearMessage: () => {
23
+ setMessage(null);
24
+ },
28
25
  displayMessage: setMessage,
29
26
  message,
30
- }), [clearMessage, message]);
31
- return (React__default["default"].createElement(InAppMessagingContext.Provider, { value: value }, children));
27
+ }), [message]);
32
28
  }
33
29
 
30
+ const InAppMessagingContext = React__default["default"].createContext(null);
31
+ const ERROR_MESSAGE = '`useInAppMessaging` must be called from within `InAppMessagingProvider`';
34
32
  /**
35
33
  * Utility hook used to access the InAppMessagingContext values
36
34
  *
37
35
  * @returns {InAppMessagingContextType} InAppMessaging context values
38
36
  */
39
37
  function useInAppMessaging() {
40
- const inAppMessagingContext = React.useContext(InAppMessagingContext);
41
- if (!inAppMessagingContext) {
42
- throw new Error('InAppMessagingContext is empty, did you forget the InAppMessagingProvider?');
38
+ const context = React__default["default"].useContext(InAppMessagingContext);
39
+ if (!context) {
40
+ throw new Error(ERROR_MESSAGE);
43
41
  }
44
- return inAppMessagingContext;
42
+ return context;
43
+ }
44
+ function InAppMessagingProvider({ children, }) {
45
+ const value = useInAppMessagingState();
46
+ return (React__default["default"].createElement(InAppMessagingContext.Provider, { value: value }, children));
45
47
  }
46
48
 
47
49
  const logger$2 = new utils.ConsoleLogger('InAppMessaging');
@@ -1,9 +1,22 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { InAppMessage } from '../../types';
3
3
  export interface InAppMessagingContextType {
4
4
  clearMessage: () => void;
5
5
  displayMessage: (message: InAppMessage) => void;
6
6
  message: InAppMessage | null;
7
7
  }
8
- declare const InAppMessagingContext: import("react").Context<InAppMessagingContextType | null>;
8
+ declare const InAppMessagingContext: React.Context<InAppMessagingContextType | null>;
9
9
  export default InAppMessagingContext;
10
+ export interface InAppMessagingProviderProps {
11
+ children: React.ReactNode;
12
+ }
13
+ export interface UseInAppMessaging extends InAppMessagingContextType {
14
+ }
15
+ export declare const ERROR_MESSAGE = "`useInAppMessaging` must be called from within `InAppMessagingProvider`";
16
+ /**
17
+ * Utility hook used to access the InAppMessagingContext values
18
+ *
19
+ * @returns {InAppMessagingContextType} InAppMessaging context values
20
+ */
21
+ export declare function useInAppMessaging(): UseInAppMessaging;
22
+ export declare function InAppMessagingProvider({ children, }: InAppMessagingProviderProps): React.JSX.Element;
@@ -1 +1 @@
1
- export { default as InAppMessagingContext, InAppMessagingContextType, } from './InAppMessagingContext';
1
+ export { default as InAppMessagingContext, InAppMessagingContextType, InAppMessagingProviderProps, InAppMessagingProvider, useInAppMessaging, UseInAppMessaging, } from './InAppMessagingContext';
@@ -0,0 +1,2 @@
1
+ import { InAppMessagingContextType } from '../InAppMessagingContext';
2
+ export declare function useInAppMessagingState(): InAppMessagingContextType;
@@ -1,2 +1 @@
1
1
  export * from './InAppMessagingContext';
2
- export * from './InAppMessagingProvider';
@@ -1,2 +1 @@
1
- export * from './useInAppMessaging';
2
1
  export * from './useMessage';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react-core-notifications",
3
- "version": "2.0.32",
3
+ "version": "2.1.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -35,12 +35,12 @@
35
35
  "typecheck": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@aws-amplify/ui": "6.7.1",
39
- "@aws-amplify/ui-react-core": "3.1.1"
38
+ "@aws-amplify/ui": "6.7.2",
39
+ "@aws-amplify/ui-react-core": "3.2.0"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "aws-amplify": "^6.9.0",
43
- "react": "^16.14.0 || ^17.0 || ^18.0"
43
+ "react": "^16.14 || ^17 || ^18 || ^19"
44
44
  },
45
45
  "sideEffects": false
46
46
  }
@@ -1,22 +0,0 @@
1
- import React, { useState, useEffect, useCallback, useMemo } from 'react';
2
- import { onMessageReceived } from 'aws-amplify/in-app-messaging';
3
- import InAppMessagingContext from '../InAppMessagingContext/InAppMessagingContext.mjs';
4
-
5
- function InAppMessagingProvider({ children, }) {
6
- const [message, setMessage] = useState(null);
7
- useEffect(() => {
8
- const listener = onMessageReceived(setMessage);
9
- return listener.remove;
10
- }, []);
11
- const clearMessage = useCallback(() => {
12
- setMessage(null);
13
- }, []);
14
- const value = useMemo(() => ({
15
- clearMessage,
16
- displayMessage: setMessage,
17
- message,
18
- }), [clearMessage, message]);
19
- return (React.createElement(InAppMessagingContext.Provider, { value: value }, children));
20
- }
21
-
22
- export { InAppMessagingProvider as default };
@@ -1,18 +0,0 @@
1
- import { useContext } from 'react';
2
- import InAppMessagingContext from '../../context/InAppMessagingContext/InAppMessagingContext.mjs';
3
- import 'aws-amplify/in-app-messaging';
4
-
5
- /**
6
- * Utility hook used to access the InAppMessagingContext values
7
- *
8
- * @returns {InAppMessagingContextType} InAppMessaging context values
9
- */
10
- function useInAppMessaging() {
11
- const inAppMessagingContext = useContext(InAppMessagingContext);
12
- if (!inAppMessagingContext) {
13
- throw new Error('InAppMessagingContext is empty, did you forget the InAppMessagingProvider?');
14
- }
15
- return inAppMessagingContext;
16
- }
17
-
18
- export { useInAppMessaging as default };
@@ -1,5 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export interface InAppMessagingProviderProps {
3
- children: ReactNode;
4
- }
5
- export default function InAppMessagingProvider({ children, }: InAppMessagingProviderProps): JSX.Element;
@@ -1 +0,0 @@
1
- export { InAppMessagingProviderProps, default as InAppMessagingProvider, } from './InAppMessagingProvider';
@@ -1 +0,0 @@
1
- export { UseInAppMessaging, default as useInAppMessaging, } from './useInAppMessaging';
@@ -1,8 +0,0 @@
1
- import { InAppMessagingContextType } from '../../context';
2
- export type UseInAppMessaging = InAppMessagingContextType;
3
- /**
4
- * Utility hook used to access the InAppMessagingContext values
5
- *
6
- * @returns {InAppMessagingContextType} InAppMessaging context values
7
- */
8
- export default function useInAppMessaging(): UseInAppMessaging;