File "tabs-component.js"
Full Path: /home/romayxjt/public_html/wp-content/themes/kadence/inc/customizer/react/src/tabs/tabs-component.js
File size: 3.42 KB
MIME-type: text/x-java
Charset: utf-8
/* jshint esversion: 6 */
import PropTypes from 'prop-types';
import { __ } from '@wordpress/i18n';
const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components;
const { Component, Fragment } = wp.element;
class TabsComponent extends Component {
constructor() {
super( ...arguments );
this.focusPanel = this.focusPanel.bind( this );
let defaultParams = {
'general': {
'label': 'General',
'target' : '',
},
'design': {
'label': 'Design',
'target' : 'design',
},
'active': 'general',
};
this.controlParams = this.props.control.params.input_attrs ? {
...defaultParams,
...this.props.control.params.input_attrs,
} : defaultParams;
}
focusPanel( section ) {
let self = this;
let otherSection;
let secton_id = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? section : 'kadence_customizer_' + section )
if ( section === self.controlParams.design.target ) {
otherSection = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? self.controlParams.general.target : 'kadence_customizer_' + self.controlParams.general.target );
} else {
otherSection = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? self.controlParams.design.target : 'kadence_customizer_' + self.controlParams.design.target );
}
if ( undefined !== self.props.customizer.section( secton_id ) ) {
const container = self.props.customizer.section( secton_id ).contentContainer[0];
const otherContainer = self.props.customizer.section( otherSection ).contentContainer[0];
container.classList.add( 'kadence-prevent-transition' );
otherContainer.classList.add( 'kadence-prevent-transition' );
setTimeout( function(){
self.props.customizer.section( secton_id ).focus();
}, 10);
setTimeout( function(){
container.classList.remove( 'kadence-prevent-transition' );
container.classList.remove( 'busy' );
container.style.top = null;
otherContainer.classList.remove( 'kadence-prevent-transition' );
otherContainer.classList.remove( 'busy' );
}, 300);
}
}
render() {
return (
<div className="customize-control-kadence_blank_control">
<div className="customize-control-description">
<div class="kadence-nav-tabs kadence-compontent-tabs nav-tab-wrapper wp-clearfix">
<Button className={ `nav-tab kadence-general-tab kadence-compontent-tabs-button kadence-nav-tabs-button${ 'general' === this.controlParams.active ? ' nav-tab-active' : '' }` } onClick={ () => this.focusPanel( this.controlParams.general.target ) }>
<span>{ this.controlParams.general.label }</span>
</Button>
<Button className={ `nav-tab kadence-design-tab kadence-compontent-tabs-button kadence-nav-tabs-button${ 'design' === this.controlParams.active ? ' nav-tab-active' : '' }` } onClick={ () => this.focusPanel( this.controlParams.design.target ) }>
<span>{ this.controlParams.design.label }</span>
</Button>
</div>
</div>
</div>
);
}
}
TabsComponent.propTypes = {
control: PropTypes.object.isRequired,
customizer: PropTypes.object.isRequired
};
export default TabsComponent;