import {useEffect} from '@wordpress/element';
import {dispatch} from '@wordpress/data';
import cx from 'classnames';
import type {Notification} from '@givewp/campaigns/types';
import {CloseIcon} from '../Icons';
import styles from './Notices.module.scss';
const Snackbar = ({notification, onDismiss}: { notification: Notification, onDismiss: () => void }) => {
return (
{typeof notification.content === 'function' ? notification.content(onDismiss, notification) : notification.content}
{notification.isDismissible && (
)}
);
};
const Notice = ({notification, onDismiss}: { notification: Notification, onDismiss: () => void }) => {
return (
{typeof notification.content === 'function' ? notification.content(onDismiss, notification) : notification.content}
{notification.isDismissible && (
)}
);
};
export default ({notification}) => {
useEffect(() => {
if (notification.autoHide) {
setTimeout(() => {
dispatch('givewp/campaign-notifications').dismissNotification(notification.id);
}, notification.duration);
}
}, []);
const onDismiss = () => {
dispatch('givewp/campaign-notifications').dismissNotification(notification.id);
if (typeof notification.onDismiss === 'function') {
notification.onDismiss();
}
};
switch (notification.notificationType) {
case 'snackbar':
return
case 'notice':
return
default:
return null;
}
}