PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
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 / AdminUI / Toast / index.tsx
give / src / Views / Components / AdminUI / Toast Last commit date
index.tsx 2 years ago style.module.scss 2 years ago
index.tsx
75 lines
1 import {MouseEventHandler, useEffect} from 'react';
2 import cx from 'classnames';
3 import {__} from '@wordpress/i18n';
4 import {ExitIcon, CheckCircle, AlertTriangle} from '@givewp/components/AdminUI/Icons';
5 import styles from './style.module.scss';
6
7 export interface ToastProps {
8 children: string | JSX.Element | JSX.Element[];
9 handleClose: MouseEventHandler;
10 type?: 'info' | 'error' | 'warning' | 'success';
11 show?: boolean;
12 position?: 'top-right' | 'bottom-right' | 'top-left' | 'bottom-left';
13 autoClose?: number;
14 showCloseIcon?: boolean;
15 }
16
17 export default function Toast({children, type, handleClose, position = 'top-right', show = true, autoClose = 0, showCloseIcon = true}: ToastProps) {
18 const getIcon = type => {
19 switch (type) {
20 case 'info':
21 return <></>
22 case 'error':
23 return <></>
24 case 'warning':
25 return <AlertTriangle />
26 case 'success':
27 return <CheckCircle />
28 }
29
30 return null;
31 }
32
33 useEffect(() => {
34 if(autoClose) {
35 setTimeout(handleClose, autoClose)
36 }
37 }, []);
38
39 if (!show) return null;
40
41 return (
42 <div className={cx(styles.toastContainer, {
43 [styles.topLeft]: position === 'top-left',
44 [styles.topRight]: position === 'top-right',
45 [styles.bottomLeft]: position === 'bottom-left',
46 [styles.bottomRight]: position === 'bottom-right',
47 [styles.success]: type === 'success',
48 [styles.warning]: type === 'warning',
49 [styles.error]: type === 'error',
50 [styles.info]: type === 'info',
51 })}>
52 {type && (
53 <div className={styles.icon}>
54 {getIcon(type)}
55 </div>
56 )}
57 <div className={styles.content}>
58 {children}
59 </div>
60 {showCloseIcon && handleClose && (
61 <div>
62 <button
63 aria-label={__('Close', 'give')}
64 className={styles.close}
65 onClick={handleClose}
66 >
67 <ExitIcon aria-label={__('Close icon', 'give')} className={styles.closeIconSize} />
68 </button>
69 </div>
70 )}
71 </div>
72 )
73 }
74
75