import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import { NotificationEntity, useReadNotificationsMutation, } from '../../generated/graphql'; import Stack from '@mui/material/Stack'; import Badge from '@mui/material/Badge'; import {useRouter} from 'next/navigation'; import {useTranslation} from 'react-i18next'; import {formatDate} from './formatDate'; interface NotificationProps { notification: NotificationEntity; onClose: () => void; } const CardNotification: React.FC = ({ notification, onClose, }: NotificationProps) => { const router = useRouter(); const {t} = useTranslation(); const [readNotifications] = useReadNotificationsMutation(); const eventName = notification.attributes.event.data?.attributes?.name; const handleClick = () => { router.push(`/e/${notification.attributes.event.data.attributes.uuid}`); readNotifications({ refetchQueries: ['UserNotifications'], variables: {id: notification.id}, }); onClose(); }; const showBadge = !notification.attributes.read; const notificationContentKey = `notification.type.${notification.attributes.type}.content`; const notificationContent = t(notificationContentKey); return ( {showBadge && ( )} {eventName} {formatDate(notification.attributes.createdAt)} {notificationContent} ); }; export default CardNotification;