import React from 'react';
import { MessageBox, MessagesSection } from './MessageBox';
import { RelativeTimestamp } from '../RelativeTimestamp';
import { ManagementWarning } from '../config/ManagementWarning';
import type { FetchNotificationsQueryVariables } from '../graphql/graphql-sdk';
import {
FetchNotificationsDocument,
useDismissNotificationMutation,
useFetchNotificationsQuery,
} from '../graphql/graphql-sdk';
import { useApplicationContextSafe } from '../../presentation';
import { getIsDebugMode } from '../utils/debugMode';
import { useLogEvent } from '../utils/logging';
const AppNotifications = () => {
const app = useApplicationContextSafe();
const logEvent = useLogEvent('Error', 'AppNotifications');
const variables: FetchNotificationsQueryVariables = { appName: app.name };
const { data, error } = useFetchNotificationsQuery({ variables });
const [onDismiss] = useDismissNotificationMutation({
refetchQueries: [{ query: FetchNotificationsDocument, variables }],
});
React.useEffect(() => {
if (error) {
logEvent({ level: 'ERROR', error });
}
}, [error, logEvent]);
const notifications = data?.application?.notifications || [];
const isDebug = getIsDebugMode();
if (!notifications.length) return null;
return (
{notifications.map((notification) => (
onDismiss({ variables: { payload: { application: app.name, id: notification.id } } })
: undefined
}
>
{notification.message}{' '}
{notification.triggeredAt && (
<>
()
>
)}
{notification.link && (
<>
{' '}
-{' '}
View
>
)}
))}
);
};
interface IMessagesProps {
showManagementWarning?: boolean;
}
export const Messages = ({ showManagementWarning = true }: IMessagesProps) => {
const app = useApplicationContextSafe();
return (
<>
{showManagementWarning && }
>
);
};