import React, { useCallback, useEffect } from 'react';
import { Amplify, Notifications } from 'aws-amplify';
import { Button, Flex, Text } from '@aws-amplify/ui-react';
import {
useInAppMessaging,
withInAppMessaging,
} from '@aws-amplify/ui-react-notifications';
import '@aws-amplify/ui-react/styles.css';
import config from './aws-exports';
const { InAppMessaging } = Notifications;
Amplify.configure(config);
const CustomBannerMessage = (props) => {
return (
{props.header.content}
);
};
function App() {
const { displayMessage } = useInAppMessaging();
useEffect(() => {
// sync remote in-app messages
InAppMessaging.syncMessages();
}, []);
const displayCustomBannerMessage = useCallback(
() =>
displayMessage({
content: [{ header: { content: 'Hello World!' } }],
id: 'Custom message',
layout: 'TOP_BANNER',
}),
[displayMessage]
);
// display custom message component on initial render
useEffect(displayCustomBannerMessage, [displayCustomBannerMessage]);
return (
);
}
export default withInAppMessaging(App, {
components: { BannerMessage: CustomBannerMessage },
});