PluginProbe
WP Ultimate Post Grid / 4.0.1
WP Ultimate Post Grid v4.0.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 / vendor / bv-settings / assets / js / admin / settings / Setting.js

Setting.js in WP Ultimate Post Grid 4.0.1, at vendor/bv-settings/assets/js/admin/settings/Setting.js

94 lines 3.4 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 PropTypes from 'prop-types';
3 import { Element } from 'react-scroll';
4
5 import Helpers from '../general/Helpers';
6 import RequiredLabel from './RequiredLabel';
7
8 import SettingCode from './setting/Code';
9 import SettingColor from './setting/Color';
10 import SettingDropdown from './setting/Dropdown';
11 import SettingDropdownMultiselect from './setting/DropdownMultiselect';
12 import SettingEmail from './setting/Email';
13 import SettingNumber from './setting/Number';
14 import SettingRichTextarea from './setting/RichTextarea';
15 import SettingText from './setting/Text';
16 import SettingTextarea from './setting/Textarea';
17 import SettingToggle from './setting/Toggle';
18
19 import InformationButton from './information/Button';
20
21 const settingTypes = {
22 code: SettingCode,
23 color: SettingColor,
24 dropdown: SettingDropdown,
25 dropdownMultiselect: SettingDropdownMultiselect,
26 email: SettingEmail,
27 number: SettingNumber,
28 richTextarea: SettingRichTextarea,
29 text: SettingText,
30 textarea: SettingTextarea,
31 toggle: SettingToggle,
32 }
33 const informationTypes = {
34 button: InformationButton,
35 }
36
37 const Setting = (props) => {
38 const SettingComponent = settingTypes.hasOwnProperty(props.setting.type) ? settingTypes[props.setting.type] : false;
39 const InformationComponent = informationTypes.hasOwnProperty(props.setting.type) ? informationTypes[props.setting.type] : false;
40
41 const displayValue = SettingComponent ? Helpers.beforeSettingDisplay(props.setting.id, props.settings) : false;
42
43 return (
44 <Element className="bvs-setting-container" name={props.setting.id} >
45 <div className="bvs-setting-label-container">
46 <span className="bvs-setting-label">
47 <RequiredLabel object={props.setting} />{props.setting.name}
48 </span>
49 <span className="bvs-setting-description">{props.setting.description}</span>
50 {
51 props.setting.hasOwnProperty('documentation')
52 ?
53 <a href={props.setting.documentation} target="_blank" className="bvs-setting-documentation">Learn More</a>
54 :
55 null
56 }
57 </div>
58 <div className="bvs-setting-input-container">
59 {
60 SettingComponent ?
61 <SettingComponent
62 setting={props.setting}
63 settingsChanged={props.settingsChanged}
64 onValueChange={(value) => {
65 const saveValue = Helpers.beforeSettingSave(value, props.setting.id, props.settings);
66 return props.onSettingChange(props.setting.id, saveValue)
67 }}
68 value={displayValue}
69 />
70 :
71 null
72 }
73 {
74 InformationComponent ?
75 <InformationComponent
76 setting={props.setting}
77 settingsChanged={props.settingsChanged}
78 />
79 :
80 null
81 }
82 </div>
83 </Element>
84 );
85 }
86
87 Setting.propTypes = {
88 settings: PropTypes.object.isRequired,
89 setting: PropTypes.object.isRequired,
90 onSettingChange: PropTypes.func.isRequired,
91 settingsChanged: PropTypes.bool.isRequired,
92 }
93
94 export default Setting;