import React, { useEffect } from "react"; import { Button, notification, Space } from "antd"; import { UndoOutlined } from "@ant-design/icons"; import { ActionTypes } from "@contexts/notification"; import { useCancelNotification, useTranslate } from "@hooks"; import { INotification } from "../../interfaces"; import { NotificationProgress } from "./components"; import { userFriendlySecond } from "@definitions/helpers"; export const Notification: React.FC<{ notifications: INotification[]; }> = ({ notifications }) => { const translate = useTranslate(); const { notificationDispatch } = useCancelNotification(); const cancelNotification = () => { notifications.forEach((notificationItem: INotification) => { if (notificationItem.isRunning === true) { if (notificationItem.seconds === 0) { notificationItem.doMutation(); } const description = (
{translate( "notifications.undoable", { seconds: userFriendlySecond( notificationItem.seconds, ), }, `You have ${userFriendlySecond( notificationItem.seconds, )} seconds to undo`, )}
); notification.open({ key: `${notificationItem.id}-${notificationItem.resource}-notification`, style: { display: notificationItem.isSilent ? "none" : "block", }, message: null, description, duration: 0, closeIcon: <>, }); } }); }; useEffect(() => { cancelNotification(); }, [notifications]); return null; };