PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.3 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