import { clsx } from 'clsx' import styles from './NotificationsPanel.module.scss' import { useEscKeyDownHandler } from '../../utils/useEscKeyDownHandler' import { useOutsideClickHandler } from '../../utils/useOutsideClickHandler' import { useLocalize } from '../../context/localize' import { Icon } from '../_shared/Icon' import { createEffect, For, onCleanup, onMount } from 'solid-js' import { useNotifications } from '../../context/notifications' import { NotificationView } from './NotificationView' type Props = { isOpen: boolean onClose: () => void } export const NotificationsPanel = (props: Props) => { const { t } = useLocalize() const { sortedNotifications } = useNotifications() const handleHide = () => { props.onClose() } const panelRef: { current: HTMLDivElement } = { current: null } useOutsideClickHandler({ containerRef: panelRef, predicate: () => props.isOpen, handler: () => handleHide() }) createEffect(() => { document.body.classList.toggle('fixed', props.isOpen) }) useEscKeyDownHandler(handleHide) const handleNotificationViewClick = () => { handleHide() } return (
(panelRef.current = el)} class={styles.panel}>
{/*TODO: check markup (hover)*/}
{t('Notifications')}
{t('No notifications, yet')}
} > {(notification) => ( )}
) }