@aws-amplify/ui-react-core-notifications 1.0.10 → 2.0.1
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/dist/esm/InAppMessaging/context/InAppMessagingContext/InAppMessagingContext.mjs +5 -1
- package/dist/esm/InAppMessaging/context/InAppMessagingProvider/InAppMessagingProvider.mjs +22 -1
- package/dist/esm/InAppMessaging/hooks/useInAppMessaging/useInAppMessaging.mjs +18 -1
- package/dist/esm/InAppMessaging/hooks/useMessage/useMessage.mjs +87 -1
- package/dist/esm/InAppMessaging/hooks/useMessage/utils.mjs +42 -1
- package/dist/esm/InAppMessaging/utils/handleMessageAction.mjs +16 -1
- package/dist/esm/index.mjs +5 -1
- package/dist/index.js +180 -1
- package/dist/types/InAppMessaging/context/InAppMessagingContext/InAppMessagingContext.d.ts +3 -3
- package/dist/types/InAppMessaging/hooks/useMessage/utils.d.ts +3 -3
- package/dist/types/InAppMessaging/types.d.ts +18 -18
- package/dist/types/InAppMessaging/utils/handleMessageAction.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/package.json +5 -27
- package/dist/esm/node_modules/tslib/tslib.es6.mjs +0 -1
|
@@ -1 +1,22 @@
|
|
|
1
|
-
import
|
|
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
|
|
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
|
|
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{
|
|
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
|
|
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 };
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export{default as useInAppMessaging}from
|
|
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
|
-
|
|
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 {
|
|
2
|
+
import { InAppMessage } from '../../types';
|
|
3
3
|
export interface InAppMessagingContextType {
|
|
4
4
|
clearMessage: () => void;
|
|
5
|
-
displayMessage: (message:
|
|
6
|
-
message:
|
|
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,
|
|
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:
|
|
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:
|
|
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 '
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
9
|
-
export type
|
|
10
|
-
export type
|
|
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:
|
|
12
|
+
action: InAppMessageAction;
|
|
13
13
|
url?: string | undefined;
|
|
14
14
|
}) => void;
|
|
15
|
-
export interface MessageButtonProps extends Omit<
|
|
15
|
+
export interface MessageButtonProps extends Omit<InAppMessageButton, 'action' | 'url'> {
|
|
16
16
|
onAction: () => void;
|
|
17
17
|
}
|
|
18
|
-
export interface MessageContentProps extends Omit<
|
|
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:
|
|
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?:
|
|
44
|
-
container?:
|
|
45
|
-
header?:
|
|
46
|
-
primaryButton?:
|
|
47
|
-
secondaryButton?:
|
|
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 {
|
|
1
|
+
import { InAppMessageAction } from '../types';
|
|
2
2
|
export type HandleMessageLinkAction = (url: string) => void | Promise<void>;
|
|
3
3
|
interface HandleMessageActionParams {
|
|
4
|
-
action:
|
|
4
|
+
action: InAppMessageAction;
|
|
5
5
|
handleMessageLinkAction: HandleMessageLinkAction;
|
|
6
6
|
url: string | undefined;
|
|
7
7
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { BannerMessageCommonProps, BannerMessageComponent, CarouselMessageCommonProps, CarouselMessageComponent, FullScreenMessageCommonProps, FullScreenMessageComponent, handleMessageAction, HandleMessageLinkAction, InAppMessagingProviderProps, InAppMessagingProvider, MessageButtonProps, MessageCommonProps, MessageComponentBaseProps, MessageContentProps,
|
|
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": "
|
|
3
|
+
"version": "2.0.1",
|
|
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": "
|
|
40
|
-
"@aws-amplify/ui-react-core": "
|
|
38
|
+
"@aws-amplify/ui": "6.0.1",
|
|
39
|
+
"@aws-amplify/ui-react-core": "3.0.1"
|
|
41
40
|
},
|
|
42
41
|
"peerDependencies": {
|
|
43
|
-
"aws-amplify": "^
|
|
44
|
-
"react": "
|
|
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};
|