PluginProbe
WP Ultimate Post Grid / 4.1.1
WP Ultimate Post Grid v4.1.1
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 / admin-modal / field / FieldIcon.js

FieldIcon.js in WP Ultimate Post Grid 4.1.1, at assets/js/admin-modal/field/FieldIcon.js

139 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import React, { Component } from 'react';
2 import SVG from 'react-inlinesvg';
3 import { Tooltip } from 'react-tippy';
4 import 'react-tippy/dist/tippy.css'
5
6 import Icons from './FieldIconIcons';
7 import { __wpupg } from 'Shared/Translations';
8
9 export default class FieldIcon extends Component {
10 constructor(props) {
11 super(props);
12
13 this.state = {
14 selecting: false,
15 }
16 }
17
18 render() {
19 const icons = Icons.getIcons();
20
21 let selectedIcon = this.props.value ? Icons.getIcon( this.props.value ) : false;
22 let hasSelectedIcon = true;
23
24 if ( ! selectedIcon ) {
25 selectedIcon = Icons.getIcon( 'add-img' );
26 hasSelectedIcon = false;
27 }
28
29 return (
30 <Tooltip
31 html={
32 <div className="wpupg-admin-modal-field-icons-container">
33 <div className="wpupg-admin-modal-field-icons">
34 {
35 Object.keys( icons ).map((key, index) => {
36 if ( 'add-img' === key ) {
37 return null;
38 }
39
40 const icon = icons[key];
41
42 return (
43 <div
44 key={ index }
45 className="wpupg-admin-modal-field-icons-icon"
46 onClick={ () => {
47 this.setState({
48 selecting: false,
49 }, () => {
50 this.props.onChange( key );
51 });
52 } }
53 >
54 <SVG
55 src={ icon }
56 />
57 </div>
58 );
59 })
60 }
61 </div>
62 {
63 hasSelectedIcon
64 &&
65 <a
66 href="#"
67 onClick={ (e) => {
68 e.preventDefault();
69 this.setState({
70 selecting: false,
71 }, () => {
72 this.props.onChange( false );
73 });
74 } }
75 >{ __wpupg( 'Remove Icon' ) }</a>
76 }
77 </div>
78 }
79 trigger="manual"
80 open={ this.state.selecting }
81 onRequestClose={() => {
82 this.setState({
83 selecting: false,
84 });
85 }}
86 interactive={ true }
87 theme="light"
88 popperOptions={ {
89 modifiers: {
90 addZIndex: {
91 enabled: true,
92 order: 810,
93 fn: data => ({
94 ...data,
95 styles: {
96 ...data.styles,
97 zIndex: 100000,
98 },
99 })
100 }
101 }
102 } }
103 >
104 <div
105 className={ `wpupg-admin-modal-field-icon${ hasSelectedIcon ? ' wpupg-admin-modal-field-icon-selected' : ' wpupg-admin-modal-field-icon-none'}` }
106 onClick={ () => {
107 this.setState({
108 selecting: true,
109 });
110 } }
111 >
112 <Tooltip
113 title={ hasSelectedIcon ? __wpupg( 'Change Icon' ) : __wpupg( 'Select Icon' ) }
114 popperOptions={ {
115 modifiers: {
116 addZIndex: {
117 enabled: true,
118 order: 810,
119 fn: data => ({
120 ...data,
121 styles: {
122 ...data.styles,
123 zIndex: 100000,
124 },
125 })
126 }
127 }
128 } }
129 disabled={ this.state.selecting }
130 >
131 <SVG
132 src={ selectedIcon }
133 />
134 </Tooltip>
135 </div>
136 </Tooltip>
137 );
138 }
139 }