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 / menu / MenuContainer.js

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

78 lines 2.7 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 { Link } from 'react-scroll'
4
5 import Helpers from '../general/Helpers';
6 import Icon from '../general/Icon';
7
8 const MenuContainer = (props) => {
9 let menuStructure = [];
10
11 for ( let group of props.structure ) {
12 if ( ! Helpers.dependencyMet(group, props.settings ) ) {
13 continue;
14 }
15
16 if (group.hasOwnProperty('header')) {
17 menuStructure.push({
18 header: group.header,
19 });
20 } else {
21
22 menuStructure.push({
23 id: group.id,
24 name: group.name,
25 icon: group.hasOwnProperty( 'icon' ) ? group.icon : false,
26 });
27 }
28 }
29
30 return (
31 <div id="bvs-settings-sidebar">
32 <div id="bvs-settings-buttons">
33 <button
34 className="button button-primary"
35 disabled={props.savingChanges || !props.settingsChanged}
36 onClick={props.onSaveChanges}
37 >{ props.savingChanges ? '...' : 'Save Changes' }</button>
38 <button
39 className="button"
40 disabled={props.savingChanges || !props.settingsChanged}
41 onClick={props.onCancelChanges}
42 >Cancel Changes</button>
43 </div>
44 <div id="bvs-settings-menu">
45 {
46 menuStructure.map((group, i) => {
47 if (group.hasOwnProperty('header')) {
48 return <div className="bvs-settings-menu-header" key={i}>{group.header}</div>
49 } else {
50 return <Link
51 to={`bvs-settings-group-${group.id}`}
52 className="bvs-settings-menu-group"
53 activeClass="active"
54 spy={true}
55 offset={-42}
56 smooth={true}
57 duration={400}
58 key={i}
59 >
60 { group.icon && <Icon type={group.icon} /> } {group.name}
61 </Link>
62 }
63 })
64 }
65 </div>
66 </div>
67 );
68 }
69
70 MenuContainer.propTypes = {
71 structure: PropTypes.array.isRequired,
72 settingsChanged: PropTypes.bool.isRequired,
73 savingChanges: PropTypes.bool.isRequired,
74 onSaveChanges: PropTypes.func.isRequired,
75 onCancelChanges: PropTypes.func.isRequired,
76 }
77
78 export default MenuContainer;