@aws-amplify/ui-react-core-notifications 1.0.10 → 2.0.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 +1,5 @@
1
- import{createContext as t}from"react";const o=t(null);export{o as default};
1
+ import { createContext } from 'react';
2
+
3
+ const InAppMessagingContext = createContext(null);
4
+
5
+ export { InAppMessagingContext as default };
@@ -1 +1,22 @@
1
- import e,{useState as n,useEffect as s,useCallback as t,useMemo as o}from"react";import{Notifications as r}from"@aws-amplify/notifications";import a from"../InAppMessagingContext/InAppMessagingContext.mjs";const{InAppMessaging:i}=r;function p({children:r}){const[p,c]=n(null);s((()=>{const e=i.onMessageReceived((e=>{c(e)}));return e.remove}),[]);const l=t((()=>{c(null)}),[]),m=o((()=>({clearMessage:l,displayMessage:c,message:p})),[l,p]);return e.createElement(a.Provider,{value:m},r)}export{p as default};
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 +1,18 @@
1
- import{useContext as t}from"react";import n from"../../context/InAppMessagingContext/InAppMessagingContext.mjs";import"@aws-amplify/notifications";function o(){const o=t(n);if(!o)throw new Error("InAppMessagingContext is empty, did you forget the InAppMessagingProvider?");return o}export{o as default};
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 +1,87 @@
1
- import{ConsoleLogger as s}from"@aws-amplify/core";import{InAppMessageInteractionEvent as e,Notifications as o}from"@aws-amplify/notifications";import{isNil as n}from"@aws-amplify/ui";import{RenderNothing as a}from"@aws-amplify/ui-react-core";import t from"../useInAppMessaging/useInAppMessaging.mjs";import{getContentProps as i,getPositionProp as p}from"./utils.mjs";const r=Object.freeze({}),l=new s("Notifications.InAppMessaging"),{InAppMessaging:c}=o;function m({components:s,onMessageAction:o}){const{clearMessage:m,message:u}=t(),{BannerMessage:g,CarouselMessage:M,FullScreenMessage:f,ModalMessage:y}=s;if(n(u))return{Component:a,props:r};const{content:A,layout:E}=u,C=()=>{c.notifyMessageInteraction(u,e.MESSAGE_ACTION_TAKEN),m()},I=()=>{c.notifyMessageInteraction(u,e.MESSAGE_DISMISSED),m()},O=()=>{c.notifyMessageInteraction(u,e.MESSAGE_DISPLAYED)};switch(E){case"BOTTOM_BANNER":case"MIDDLE_BANNER":case"TOP_BANNER":return{Component:g,props:Object.assign(Object.assign({},i(null==A?void 0:A[0],o,C)),{layout:E,onClose:I,onDisplay:O,position:p(E)})};case"CAROUSEL":return{Component:M,props:{data:null==A?void 0:A.map((s=>i(s,o,C))),layout:E,onClose:I,onDisplay:O}};case"FULL_SCREEN":return{Component:f,props:Object.assign(Object.assign({},i(null==A?void 0:A[0],o,C)),{layout:E,onClose:I,onDisplay:O})};case"MODAL":return{Component:y,props:Object.assign(Object.assign({},i(null==A?void 0:A[0],o,C)),{layout:E,onClose:I,onDisplay:O})};default:return l.info(`Received unknown InAppMessage layout: ${E}`),{Component:a,props:r}}}export{r as EMPTY_PROPS,m as default};
1
+ import { ConsoleLogger } from 'aws-amplify/utils';
2
+ import { isNil } from '@aws-amplify/ui';
3
+ import { RenderNothing } from '@aws-amplify/ui-react-core';
4
+ import useInAppMessaging from '../useInAppMessaging/useInAppMessaging.mjs';
5
+ import { getContentProps, getPositionProp } from './utils.mjs';
6
+ import { notifyMessageInteraction } from 'aws-amplify/in-app-messaging';
7
+
8
+ const EMPTY_PROPS = Object.freeze({});
9
+ const logger = new ConsoleLogger('InAppMessaging');
10
+ /**
11
+ * Utility hook for parsing a message and retrieving its corresponding UI component and props
12
+ *
13
+ * @param {UseMessageParams} props - platform specific UI components, action handler, and styles
14
+ * @returns {UseMessage} message UI component and props
15
+ */
16
+ function useMessage({ components, onMessageAction, }) {
17
+ const { clearMessage, message } = useInAppMessaging();
18
+ const { BannerMessage, CarouselMessage, FullScreenMessage, ModalMessage } = components;
19
+ if (isNil(message)) {
20
+ return {
21
+ Component: RenderNothing,
22
+ props: EMPTY_PROPS,
23
+ };
24
+ }
25
+ const { content, layout } = message;
26
+ const onActionCallback = () => {
27
+ notifyMessageInteraction({ type: 'messageActionTaken', message });
28
+ clearMessage();
29
+ };
30
+ const onClose = () => {
31
+ notifyMessageInteraction({ type: 'messageDismissed', message });
32
+ clearMessage();
33
+ };
34
+ const onDisplay = () => {
35
+ notifyMessageInteraction({ type: 'messageDisplayed', message });
36
+ };
37
+ switch (layout) {
38
+ case 'BOTTOM_BANNER':
39
+ case 'MIDDLE_BANNER':
40
+ case 'TOP_BANNER': {
41
+ const props = {
42
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
43
+ layout,
44
+ onClose,
45
+ onDisplay,
46
+ position: getPositionProp(layout),
47
+ };
48
+ return { Component: BannerMessage, props };
49
+ }
50
+ case 'CAROUSEL': {
51
+ const props = {
52
+ data: content?.map((item) => getContentProps(item, onMessageAction, onActionCallback)),
53
+ layout,
54
+ onClose,
55
+ onDisplay,
56
+ };
57
+ return { Component: CarouselMessage, props };
58
+ }
59
+ case 'FULL_SCREEN': {
60
+ const props = {
61
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
62
+ layout,
63
+ onClose,
64
+ onDisplay,
65
+ };
66
+ return { Component: FullScreenMessage, props };
67
+ }
68
+ case 'MODAL': {
69
+ const props = {
70
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
71
+ layout,
72
+ onClose,
73
+ onDisplay,
74
+ };
75
+ return { Component: ModalMessage, props };
76
+ }
77
+ default: {
78
+ logger.info(`Received unknown InAppMessage layout: ${layout}`);
79
+ return {
80
+ Component: RenderNothing,
81
+ props: EMPTY_PROPS,
82
+ };
83
+ }
84
+ }
85
+ }
86
+
87
+ export { EMPTY_PROPS, useMessage as default };
@@ -1 +1,42 @@
1
- import{__rest as t}from"../../../node_modules/tslib/tslib.es6.mjs";import{ConsoleLogger as o}from"@aws-amplify/core";const n=new o("Notifications.InAppMessaging"),r={BOTTOM_BANNER:"bottom",MIDDLE_BANNER:"middle",TOP_BANNER:"top"},i=t=>r[t],s=(t,o,r)=>({onAction(){try{o(t)}catch(t){n.error(`Message action failure: ${t}`)}finally{r()}}}),a=(o,n,r)=>{var{action:i,url:a}=o,e=t(o,["action","url"]);return Object.assign(Object.assign({},e),s({action:i,url:a},n,r))},e=(o,n,r)=>{const i={};if(!o)return i;const{primaryButton:s,secondaryButton:e}=o,c=t(o,["primaryButton","secondaryButton"]);return s&&(i.primaryButton=a(s,n,r)),e&&(i.secondaryButton=a(e,n,r)),Object.assign(Object.assign({},i),c)};export{s as getActionHandler,e as getContentProps,i as getPositionProp};
1
+ import { ConsoleLogger } from 'aws-amplify/utils';
2
+
3
+ const logger = new ConsoleLogger('InAppMessaging');
4
+ const positions = {
5
+ BOTTOM_BANNER: 'bottom',
6
+ MIDDLE_BANNER: 'middle',
7
+ TOP_BANNER: 'top',
8
+ };
9
+ const getPositionProp = (layout) => positions[layout];
10
+ const getActionHandler = (actionParams, onMessageAction, onActionCallback) => ({
11
+ onAction() {
12
+ try {
13
+ onMessageAction(actionParams);
14
+ }
15
+ catch (e) {
16
+ logger.error(`Message action failure: ${e}`);
17
+ }
18
+ finally {
19
+ onActionCallback();
20
+ }
21
+ },
22
+ });
23
+ const getButtonProps = ({ action, url, ...baseButtonProps }, onMessageAction, onActionCallback) => ({
24
+ ...baseButtonProps,
25
+ ...getActionHandler({ action, url }, onMessageAction, onActionCallback),
26
+ });
27
+ const getContentProps = (content, onMessageAction, onActionCallback) => {
28
+ const props = {};
29
+ if (!content) {
30
+ return props;
31
+ }
32
+ const { primaryButton, secondaryButton, ...restContent } = content;
33
+ if (primaryButton) {
34
+ props.primaryButton = getButtonProps(primaryButton, onMessageAction, onActionCallback);
35
+ }
36
+ if (secondaryButton) {
37
+ props.secondaryButton = getButtonProps(secondaryButton, onMessageAction, onActionCallback);
38
+ }
39
+ return { ...props, ...restContent };
40
+ };
41
+
42
+ export { getActionHandler, getContentProps, getPositionProp };
@@ -1 +1,16 @@
1
- import{ConsoleLogger as i}from"@aws-amplify/core";import{isString as e}from"@aws-amplify/ui";const n=new i("Notifications.InAppMessaging"),o=({action:i,handleMessageLinkAction:o,url:a})=>{if(n.info(`Handle action: ${i}`),"LINK"===i||"DEEP_LINK"===i){if(!e(a))return void n.warn(`url must be of type string. Received: ${a}`);o(a)}};export{o as default};
1
+ import { ConsoleLogger } from 'aws-amplify/utils';
2
+ import { isString } from '@aws-amplify/ui';
3
+
4
+ const logger = new ConsoleLogger('InAppMessaging');
5
+ const handleMessageAction = ({ action, handleMessageLinkAction, url, }) => {
6
+ logger.info(`Handle action: ${action}`);
7
+ if (action === 'LINK' || action === 'DEEP_LINK') {
8
+ if (!isString(url)) {
9
+ logger.warn(`url must be of type string. Received: ${url}`);
10
+ return;
11
+ }
12
+ handleMessageLinkAction(url);
13
+ }
14
+ };
15
+
16
+ export { handleMessageAction as default };
@@ -1 +1,5 @@
1
- export{default as useInAppMessaging}from"./InAppMessaging/hooks/useInAppMessaging/useInAppMessaging.mjs";export{default as useMessage}from"./InAppMessaging/hooks/useMessage/useMessage.mjs";import"./InAppMessaging/context/InAppMessagingContext/InAppMessagingContext.mjs";export{default as InAppMessagingProvider}from"./InAppMessaging/context/InAppMessagingProvider/InAppMessagingProvider.mjs";export{default as handleMessageAction}from"./InAppMessaging/utils/handleMessageAction.mjs";
1
+ export { default as useInAppMessaging } from './InAppMessaging/hooks/useInAppMessaging/useInAppMessaging.mjs';
2
+ 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';
5
+ export { default as handleMessageAction } from './InAppMessaging/utils/handleMessageAction.mjs';
package/dist/index.js CHANGED
@@ -1 +1,180 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("@aws-amplify/notifications"),t=require("@aws-amplify/core"),o=require("@aws-amplify/ui"),s=require("@aws-amplify/ui-react-core");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=r(e);const i=e.createContext(null),{InAppMessaging:c}=n.Notifications;function p(){const n=e.useContext(i);if(!n)throw new Error("InAppMessagingContext is empty, did you forget the InAppMessagingProvider?");return n}function l(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)n.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(t[o[s]]=e[o[s]])}return t}const u=new t.ConsoleLogger("Notifications.InAppMessaging"),g={BOTTOM_BANNER:"bottom",MIDDLE_BANNER:"middle",TOP_BANNER:"top"},f=e=>g[e],M=(e,n,t)=>{var{action:o,url:s}=e,r=l(e,["action","url"]);return Object.assign(Object.assign({},r),((e,n,t)=>({onAction(){try{n(e)}catch(e){u.error(`Message action failure: ${e}`)}finally{t()}}}))({action:o,url:s},n,t))},y=(e,n,t)=>{const o={};if(!e)return o;const{primaryButton:s,secondaryButton:r}=e,a=l(e,["primaryButton","secondaryButton"]);return s&&(o.primaryButton=M(s,n,t)),r&&(o.secondaryButton=M(r,n,t)),Object.assign(Object.assign({},o),a)},d=Object.freeze({}),A=new t.ConsoleLogger("Notifications.InAppMessaging"),{InAppMessaging:O}=n.Notifications;const E=new t.ConsoleLogger("Notifications.InAppMessaging");exports.InAppMessagingProvider=function({children:n}){const[t,o]=e.useState(null);e.useEffect((()=>{const e=c.onMessageReceived((e=>{o(e)}));return e.remove}),[]);const s=e.useCallback((()=>{o(null)}),[]),r=e.useMemo((()=>({clearMessage:s,displayMessage:o,message:t})),[s,t]);return a.default.createElement(i.Provider,{value:r},n)},exports.handleMessageAction=({action:e,handleMessageLinkAction:n,url:t})=>{if(E.info(`Handle action: ${e}`),"LINK"===e||"DEEP_LINK"===e){if(!o.isString(t))return void E.warn(`url must be of type string. Received: ${t}`);n(t)}},exports.useInAppMessaging=p,exports.useMessage=function({components:e,onMessageAction:t}){const{clearMessage:r,message:a}=p(),{BannerMessage:i,CarouselMessage:c,FullScreenMessage:l,ModalMessage:u}=e;if(o.isNil(a))return{Component:s.RenderNothing,props:d};const{content:g,layout:M}=a,E=()=>{O.notifyMessageInteraction(a,n.InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN),r()},I=()=>{O.notifyMessageInteraction(a,n.InAppMessageInteractionEvent.MESSAGE_DISMISSED),r()},m=()=>{O.notifyMessageInteraction(a,n.InAppMessageInteractionEvent.MESSAGE_DISPLAYED)};switch(M){case"BOTTOM_BANNER":case"MIDDLE_BANNER":case"TOP_BANNER":return{Component:i,props:Object.assign(Object.assign({},y(null==g?void 0:g[0],t,E)),{layout:M,onClose:I,onDisplay:m,position:f(M)})};case"CAROUSEL":return{Component:c,props:{data:null==g?void 0:g.map((e=>y(e,t,E))),layout:M,onClose:I,onDisplay:m}};case"FULL_SCREEN":return{Component:l,props:Object.assign(Object.assign({},y(null==g?void 0:g[0],t,E)),{layout:M,onClose:I,onDisplay:m})};case"MODAL":return{Component:u,props:Object.assign(Object.assign({},y(null==g?void 0:g[0],t,E)),{layout:M,onClose:I,onDisplay:m})};default:return A.info(`Received unknown InAppMessage layout: ${M}`),{Component:s.RenderNothing,props:d}}};
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var inAppMessaging = require('aws-amplify/in-app-messaging');
7
+ var utils = require('aws-amplify/utils');
8
+ var ui = require('@aws-amplify/ui');
9
+ var uiReactCore = require('@aws-amplify/ui-react-core');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+
15
+ const InAppMessagingContext = React.createContext(null);
16
+
17
+ function InAppMessagingProvider({ children, }) {
18
+ const [message, setMessage] = React.useState(null);
19
+ React.useEffect(() => {
20
+ const listener = inAppMessaging.onMessageReceived(setMessage);
21
+ return listener.remove;
22
+ }, []);
23
+ const clearMessage = React.useCallback(() => {
24
+ setMessage(null);
25
+ }, []);
26
+ const value = React.useMemo(() => ({
27
+ clearMessage,
28
+ displayMessage: setMessage,
29
+ message,
30
+ }), [clearMessage, message]);
31
+ return (React__default["default"].createElement(InAppMessagingContext.Provider, { value: value }, children));
32
+ }
33
+
34
+ /**
35
+ * Utility hook used to access the InAppMessagingContext values
36
+ *
37
+ * @returns {InAppMessagingContextType} InAppMessaging context values
38
+ */
39
+ function useInAppMessaging() {
40
+ const inAppMessagingContext = React.useContext(InAppMessagingContext);
41
+ if (!inAppMessagingContext) {
42
+ throw new Error('InAppMessagingContext is empty, did you forget the InAppMessagingProvider?');
43
+ }
44
+ return inAppMessagingContext;
45
+ }
46
+
47
+ const logger$2 = new utils.ConsoleLogger('InAppMessaging');
48
+ const positions = {
49
+ BOTTOM_BANNER: 'bottom',
50
+ MIDDLE_BANNER: 'middle',
51
+ TOP_BANNER: 'top',
52
+ };
53
+ const getPositionProp = (layout) => positions[layout];
54
+ const getActionHandler = (actionParams, onMessageAction, onActionCallback) => ({
55
+ onAction() {
56
+ try {
57
+ onMessageAction(actionParams);
58
+ }
59
+ catch (e) {
60
+ logger$2.error(`Message action failure: ${e}`);
61
+ }
62
+ finally {
63
+ onActionCallback();
64
+ }
65
+ },
66
+ });
67
+ const getButtonProps = ({ action, url, ...baseButtonProps }, onMessageAction, onActionCallback) => ({
68
+ ...baseButtonProps,
69
+ ...getActionHandler({ action, url }, onMessageAction, onActionCallback),
70
+ });
71
+ const getContentProps = (content, onMessageAction, onActionCallback) => {
72
+ const props = {};
73
+ if (!content) {
74
+ return props;
75
+ }
76
+ const { primaryButton, secondaryButton, ...restContent } = content;
77
+ if (primaryButton) {
78
+ props.primaryButton = getButtonProps(primaryButton, onMessageAction, onActionCallback);
79
+ }
80
+ if (secondaryButton) {
81
+ props.secondaryButton = getButtonProps(secondaryButton, onMessageAction, onActionCallback);
82
+ }
83
+ return { ...props, ...restContent };
84
+ };
85
+
86
+ const EMPTY_PROPS = Object.freeze({});
87
+ const logger$1 = new utils.ConsoleLogger('InAppMessaging');
88
+ /**
89
+ * Utility hook for parsing a message and retrieving its corresponding UI component and props
90
+ *
91
+ * @param {UseMessageParams} props - platform specific UI components, action handler, and styles
92
+ * @returns {UseMessage} message UI component and props
93
+ */
94
+ function useMessage({ components, onMessageAction, }) {
95
+ const { clearMessage, message } = useInAppMessaging();
96
+ const { BannerMessage, CarouselMessage, FullScreenMessage, ModalMessage } = components;
97
+ if (ui.isNil(message)) {
98
+ return {
99
+ Component: uiReactCore.RenderNothing,
100
+ props: EMPTY_PROPS,
101
+ };
102
+ }
103
+ const { content, layout } = message;
104
+ const onActionCallback = () => {
105
+ inAppMessaging.notifyMessageInteraction({ type: 'messageActionTaken', message });
106
+ clearMessage();
107
+ };
108
+ const onClose = () => {
109
+ inAppMessaging.notifyMessageInteraction({ type: 'messageDismissed', message });
110
+ clearMessage();
111
+ };
112
+ const onDisplay = () => {
113
+ inAppMessaging.notifyMessageInteraction({ type: 'messageDisplayed', message });
114
+ };
115
+ switch (layout) {
116
+ case 'BOTTOM_BANNER':
117
+ case 'MIDDLE_BANNER':
118
+ case 'TOP_BANNER': {
119
+ const props = {
120
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
121
+ layout,
122
+ onClose,
123
+ onDisplay,
124
+ position: getPositionProp(layout),
125
+ };
126
+ return { Component: BannerMessage, props };
127
+ }
128
+ case 'CAROUSEL': {
129
+ const props = {
130
+ data: content?.map((item) => getContentProps(item, onMessageAction, onActionCallback)),
131
+ layout,
132
+ onClose,
133
+ onDisplay,
134
+ };
135
+ return { Component: CarouselMessage, props };
136
+ }
137
+ case 'FULL_SCREEN': {
138
+ const props = {
139
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
140
+ layout,
141
+ onClose,
142
+ onDisplay,
143
+ };
144
+ return { Component: FullScreenMessage, props };
145
+ }
146
+ case 'MODAL': {
147
+ const props = {
148
+ ...getContentProps(content?.[0], onMessageAction, onActionCallback),
149
+ layout,
150
+ onClose,
151
+ onDisplay,
152
+ };
153
+ return { Component: ModalMessage, props };
154
+ }
155
+ default: {
156
+ logger$1.info(`Received unknown InAppMessage layout: ${layout}`);
157
+ return {
158
+ Component: uiReactCore.RenderNothing,
159
+ props: EMPTY_PROPS,
160
+ };
161
+ }
162
+ }
163
+ }
164
+
165
+ const logger = new utils.ConsoleLogger('InAppMessaging');
166
+ const handleMessageAction = ({ action, handleMessageLinkAction, url, }) => {
167
+ logger.info(`Handle action: ${action}`);
168
+ if (action === 'LINK' || action === 'DEEP_LINK') {
169
+ if (!ui.isString(url)) {
170
+ logger.warn(`url must be of type string. Received: ${url}`);
171
+ return;
172
+ }
173
+ handleMessageLinkAction(url);
174
+ }
175
+ };
176
+
177
+ exports.InAppMessagingProvider = InAppMessagingProvider;
178
+ exports.handleMessageAction = handleMessageAction;
179
+ exports.useInAppMessaging = useInAppMessaging;
180
+ exports.useMessage = useMessage;
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { Message } from '../../types';
2
+ import { InAppMessage } from '../../types';
3
3
  export interface InAppMessagingContextType {
4
4
  clearMessage: () => void;
5
- displayMessage: (message: Message) => void;
6
- message: Message | null;
5
+ displayMessage: (message: InAppMessage) => void;
6
+ message: InAppMessage | null;
7
7
  }
8
8
  declare const InAppMessagingContext: import("react").Context<InAppMessagingContextType | null>;
9
9
  export default InAppMessagingContext;
@@ -1,9 +1,9 @@
1
- import { BannerMessageLayouts, MessageAction, MessageComponentPosition, MessageContent, MessageContentProps, OnMessageAction } from '../../types';
1
+ import { BannerMessageLayouts, InAppMessageAction, MessageComponentPosition, InAppMessageContent, MessageContentProps, OnMessageAction } from '../../types';
2
2
  export declare const getPositionProp: (layout: BannerMessageLayouts) => MessageComponentPosition;
3
3
  export declare const getActionHandler: (actionParams: {
4
- action: MessageAction;
4
+ action: InAppMessageAction;
5
5
  url?: string;
6
6
  }, onMessageAction: OnMessageAction, onActionCallback: () => void) => {
7
7
  onAction: () => void;
8
8
  };
9
- export declare const getContentProps: (content: MessageContent, onMessageAction: OnMessageAction, onActionCallback: () => void) => MessageContentProps;
9
+ export declare const getContentProps: (content: InAppMessageContent, onMessageAction: OnMessageAction, onActionCallback: () => void) => MessageContentProps;
@@ -1,28 +1,28 @@
1
1
  import React from 'react';
2
- import { InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageLayout, InAppMessageStyle, InAppMessageTextAlign } from '@aws-amplify/notifications';
3
- export type Message = InAppMessage;
4
- export type MessageAction = InAppMessageAction;
5
- export type MessageButton = InAppMessageButton;
6
- export type MessageContent = InAppMessageContent;
7
- export type MessageImage = InAppMessageImage;
8
- export type MessageLayout = InAppMessageLayout;
9
- export type MessageStyle = InAppMessageStyle;
10
- export type MessageTextAlign = InAppMessageTextAlign;
2
+ import { InAppMessage as InAppMessageBase, InAppMessageAction as InAppMessageActionBase, InAppMessageButton as InAppMessageButtonBase, InAppMessageContent as InAppMessageContentBase, InAppMessageImage as InAppMessageImageBase, InAppMessageLayout as InAppMessageLayoutBase, InAppMessageStyle as InAppMessageStyleBase, InAppMessageTextAlign as InAppMessageTextAlignBase } from 'aws-amplify/in-app-messaging';
3
+ export type InAppMessage = InAppMessageBase;
4
+ export type InAppMessageAction = InAppMessageActionBase;
5
+ export type InAppMessageButton = InAppMessageButtonBase;
6
+ export type InAppMessageContent = InAppMessageContentBase;
7
+ export type InAppMessageImage = InAppMessageImageBase;
8
+ export type InAppMessageLayout = InAppMessageLayoutBase;
9
+ export type InAppMessageStyle = InAppMessageStyleBase;
10
+ export type InAppMessageTextAlign = InAppMessageTextAlignBase;
11
11
  export type OnMessageAction = (params: {
12
- action: MessageAction;
12
+ action: InAppMessageAction;
13
13
  url?: string | undefined;
14
14
  }) => void;
15
- export interface MessageButtonProps extends Omit<MessageButton, 'action' | 'url'> {
15
+ export interface MessageButtonProps extends Omit<InAppMessageButton, 'action' | 'url'> {
16
16
  onAction: () => void;
17
17
  }
18
- export interface MessageContentProps extends Omit<MessageContent, 'primaryButton' | 'secondaryButton'> {
18
+ export interface MessageContentProps extends Omit<InAppMessageContent, 'primaryButton' | 'secondaryButton'> {
19
19
  primaryButton?: MessageButtonProps;
20
20
  secondaryButton?: MessageButtonProps;
21
21
  }
22
22
  export interface MessageComponentBaseProps<Style = unknown> extends MessageCommonProps<Style>, MessageContentProps {
23
23
  }
24
24
  export interface MessageCommonProps<PlatformStyleProps> {
25
- layout: MessageLayout;
25
+ layout: InAppMessageLayout;
26
26
  onClose?: () => void;
27
27
  onDisplay?: () => void;
28
28
  style?: PlatformStyleProps;
@@ -40,11 +40,11 @@ export interface FullScreenMessageCommonProps<PlatformStyleProps> extends Messag
40
40
  export interface ModalMessageCommonProps<PlatformStyleProps> extends MessageCommonProps<PlatformStyleProps>, MessageContentProps {
41
41
  }
42
42
  export interface MessagePayloadStyle {
43
- body?: MessageStyle;
44
- container?: MessageStyle;
45
- header?: MessageStyle;
46
- primaryButton?: MessageStyle;
47
- secondaryButton?: MessageStyle;
43
+ body?: InAppMessageStyle;
44
+ container?: InAppMessageStyle;
45
+ header?: InAppMessageStyle;
46
+ primaryButton?: InAppMessageStyle;
47
+ secondaryButton?: InAppMessageStyle;
48
48
  }
49
49
  export type BannerMessageComponent<PlatformStyleProps> = React.ComponentType<BannerMessageCommonProps<PlatformStyleProps>>;
50
50
  export type CarouselMessageComponent<PlatformStyleProps> = React.ComponentType<CarouselMessageCommonProps<PlatformStyleProps>>;
@@ -1,7 +1,7 @@
1
- import { MessageAction } from '../types';
1
+ import { InAppMessageAction } from '../types';
2
2
  export type HandleMessageLinkAction = (url: string) => void | Promise<void>;
3
3
  interface HandleMessageActionParams {
4
- action: MessageAction;
4
+ action: InAppMessageAction;
5
5
  handleMessageLinkAction: HandleMessageLinkAction;
6
6
  url: string | undefined;
7
7
  }
@@ -1 +1 @@
1
- export { BannerMessageCommonProps, BannerMessageComponent, CarouselMessageCommonProps, CarouselMessageComponent, FullScreenMessageCommonProps, FullScreenMessageComponent, handleMessageAction, HandleMessageLinkAction, InAppMessagingProviderProps, InAppMessagingProvider, MessageButtonProps, MessageCommonProps, MessageComponentBaseProps, MessageContentProps, MessageImage, MessageLayout, MessagePayloadStyle, MessageTextAlign, ModalMessageCommonProps, ModalMessageComponent, OnMessageAction, UseInAppMessaging, useInAppMessaging, useMessage, } from './InAppMessaging';
1
+ export { BannerMessageCommonProps, BannerMessageComponent, CarouselMessageCommonProps, CarouselMessageComponent, FullScreenMessageCommonProps, FullScreenMessageComponent, handleMessageAction, HandleMessageLinkAction, InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageLayout, InAppMessageStyle, InAppMessagingProviderProps, InAppMessagingProvider, InAppMessageTextAlign, MessageButtonProps, MessageCommonProps, MessageComponentBaseProps, MessageContentProps, MessagePayloadStyle, ModalMessageCommonProps, ModalMessageComponent, OnMessageAction, UseInAppMessaging, useInAppMessaging, useMessage, } from './InAppMessaging';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react-core-notifications",
3
- "version": "1.0.10",
3
+ "version": "2.0.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -31,38 +31,16 @@
31
31
  "lint": "yarn typecheck && eslint src --ext .js,.ts,.tsx",
32
32
  "prebuild": "rimraf dist",
33
33
  "test": "jest",
34
- "test:ci": "yarn test && yarn check:esm",
35
34
  "test:watch": "yarn test --watch",
36
35
  "typecheck": "tsc --noEmit"
37
36
  },
38
37
  "dependencies": {
39
- "@aws-amplify/ui": "5.8.1",
40
- "@aws-amplify/ui-react-core": "2.1.33"
38
+ "@aws-amplify/ui": "6.0.0",
39
+ "@aws-amplify/ui-react-core": "3.0.0"
41
40
  },
42
41
  "peerDependencies": {
43
- "aws-amplify": "^5.0.1",
44
- "react": ">= 16.14.0"
45
- },
46
- "devDependencies": {
47
- "@aws-amplify/eslint-config-amplify-ui": "0.0.0",
48
- "@rollup/plugin-typescript": "^8.3.1",
49
- "@testing-library/jest-dom": "^5.14.1",
50
- "@testing-library/react": "^12.0.0",
51
- "@testing-library/react-hooks": "^7.0.1",
52
- "@types/jest": "^26.0.23",
53
- "@types/react": "^17.0.2",
54
- "@types/react-test-renderer": "^17.0.1",
55
- "@types/testing-library__jest-dom": "^5.14.1",
56
- "eslint": "^8.44.0",
57
- "jest": "^27.0.4",
58
- "react": "^17.0.2",
59
- "react-dom": "^17.0.2",
60
- "react-test-renderer": "^17.0.2",
61
- "rimraf": "^3.0.2",
62
- "rollup": "^2.70.0",
63
- "rollup-plugin-node-externals": "^4.1.1",
64
- "rollup-plugin-terser": "^7.0.2",
65
- "ts-jest": "^27.0.3"
42
+ "aws-amplify": "^6.0.2",
43
+ "react": "^16.14.0 || ^17.0 || ^18.0"
66
44
  },
67
45
  "sideEffects": false
68
46
  }
@@ -1 +0,0 @@
1
- function e(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}export{e as __rest};