PluginProbe
WP Ultimate Post Grid / 3.8.0
WP Ultimate Post Grid v3.8.0
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / assets / js / shared / Icon.js

Icon.js in WP Ultimate Post Grid 3.8.0, at assets/js/shared/Icon.js

71 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import React from 'react';
2 import SVG from 'react-inlinesvg';
3
4 import '../../css/admin/shared/icon.scss';
5 import Tooltip from './Tooltip';
6
7 import IconClipboard from '../../icons/clipboard.svg';
8 import IconClose from '../../icons/close.svg';
9 import IconDelete from '../../icons/delete.svg';
10 import IconDown from '../../icons/down.svg';
11 import IconDuplicate from '../../icons/duplicate.svg';
12 import IconEdit from '../../icons/edit.svg';
13 import IconLink from '../../icons/link.svg';
14 import IconQuestion from '../../icons/question.svg';
15 import IconReload from '../../icons/reload.svg';
16 import IconUp from '../../icons/up.svg';
17
18 const icons = {
19 clipboard: IconClipboard,
20 close: IconClose,
21 delete: IconDelete,
22 down: IconDown,
23 duplicate: IconDuplicate,
24 edit: IconEdit,
25 link: IconLink,
26 question: IconQuestion,
27 reload: IconReload,
28 up: IconUp,
29 };
30
31 const Icon = (props) => {
32 let icon = icons.hasOwnProperty(props.type) ? icons[props.type] : false;
33
34 if ( !icon ) {
35 return null;
36 }
37
38 let iconDisabled = false;
39 let tooltipContent = props.title ? props.title : false;
40 let className = props.className ? `wpupg-admin-icon ${props.className}` : 'wpupg-admin-icon';
41
42 // Check if there are requirements.
43 if ( props.required ) {
44 if ( ! wpupg_admin.addons.hasOwnProperty( props.required ) || true !== wpupg_admin.addons[ props.required ] ) {
45 iconDisabled = true;
46 className += ' wpupg-admin-icon-required';
47
48 const capitalized = props.required[0].toUpperCase() + props.required.substring(1);
49 tooltipContent = `WP Ultimate Post Grid ${capitalized} Bundle Only`;
50 }
51 }
52
53 return (
54 <Tooltip content={tooltipContent}>
55 <span
56 className={className}
57 onClick={ iconDisabled ? () => {
58 if ( confirm( 'Want to learn more about the version required for this feature?' ) ) {
59 window.open( 'https://bootstrapped.ventures/wp-ultimate-post-grid/get-the-plugin/', '_blank' );
60 }
61 } : props.onClick }
62 title={props.title}
63 >
64 <SVG
65 src={icon}
66 />
67 </span>
68 </Tooltip>
69 );
70 }
71 export default Icon;