PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.6
GiveWP – Donation Plugin and Fundraising Platform v4.14.6
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Views / Components / AdminDetailsPage / Notifications / Notification.tsx
give / src / Views / Components / AdminDetailsPage / Notifications Last commit date
Notices.module.scss 11 months ago Notification.tsx 1 year ago index.tsx 1 year ago
Notification.tsx
75 lines
1 import {useEffect} from '@wordpress/element';
2 import {dispatch} from '@wordpress/data';
3 import cx from 'classnames';
4 import type {Notification} from '../types';
5 import {CloseIcon} from '../Icons';
6
7 import styles from './Notices.module.scss';
8
9 const Snackbar = ({notification, onDismiss}: { notification: Notification, onDismiss: () => void }) => {
10 return (
11
12 <div
13 className={cx(styles.snackbar, styles[`type-${notification.type}-snackbar`])}
14 >
15 <div>
16 {typeof notification.content === 'function' ? notification.content(onDismiss, notification) : notification.content}
17 </div>
18 {notification.isDismissible && (
19 <a href="#" onClick={onDismiss}>
20 <CloseIcon />
21 </a>
22 )}
23
24 </div>
25 );
26 };
27
28 const Notice = ({notification, onDismiss}: { notification: Notification, onDismiss: () => void }) => {
29 return (
30
31 <div
32 className={cx(styles.notice, styles[`type-${notification.type}`])}
33 >
34 <div className={styles.notificationContent}>
35 {typeof notification.content === 'function' ? notification.content(onDismiss, notification) : notification.content}
36 </div>
37 {notification.isDismissible && (
38 <a href="#" onClick={onDismiss}>
39 <CloseIcon />
40 </a>
41 )}
42
43 </div>
44 );
45 };
46
47 export default ({notification}: { notification: Notification }) => {
48
49 useEffect(() => {
50 if (notification.autoHide) {
51 setTimeout(() => {
52 dispatch('givewp/admin-details-page-notifications').dismissNotification(notification.id);
53 }, notification.duration);
54 }
55 }, []);
56
57 const onDismiss = () => {
58 dispatch('givewp/admin-details-page-notifications').dismissNotification(notification.id);
59
60 if (typeof notification.onDismiss === 'function') {
61 notification.onDismiss();
62 }
63 };
64
65
66 switch (notification.notificationType) {
67 case 'snackbar':
68 return <Snackbar notification={notification} onDismiss={onDismiss} />
69 case 'notice':
70 return <Notice notification={notification} onDismiss={onDismiss} />
71 default:
72 return null;
73 }
74 }
75