hedgedoc/frontend/src/components/notifications/ui-notifications.tsx
Tilman Vatteroth e390c0dd15 fix(frontend): reformat source files
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2022-12-04 20:59:46 +01:00

32 lines
1 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import styles from './notifications.module.scss'
import type { UiNotification } from './types'
import { UiNotificationToast } from './ui-notification-toast'
import React, { useMemo } from 'react'
export interface UiNotificationsProps {
notifications: UiNotification[]
}
/**
* Renders {@link UiNotification notifications} in the top right corner sorted by creation time..
*
* @param notifications The notification to render
*/
export const UiNotifications: React.FC<UiNotificationsProps> = ({ notifications }) => {
const notificationElements = useMemo(() => {
return notifications
.sort((a, b) => b.createdAtTimestamp - a.createdAtTimestamp)
.map((notification) => <UiNotificationToast key={notification.uuid} notification={notification} />)
}, [notifications])
return (
<div className={styles['notifications-area']} aria-live='polite' aria-atomic='true'>
{notificationElements}
</div>
)
}