File "edit.js"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/blocks/price-filter/edit.js
File size: 3.83 KB
MIME-type: text/x-java
Charset: utf-8
/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import { InspectorControls } from '@wordpress/block-editor';
import {
Placeholder,
Disabled,
PanelBody,
ToggleControl,
Button,
} from '@wordpress/components';
import { getAdminLink } from '@woocommerce/settings';
import { blocksConfig } from '@woocommerce/block-settings';
import HeadingToolbar from '@woocommerce/editor-components/heading-toolbar';
import BlockTitle from '@woocommerce/editor-components/block-title';
import ToggleButtonControl from '@woocommerce/editor-components/toggle-button-control';
import { Icon, bill, external } from '@woocommerce/icons';
/**
* Internal dependencies
*/
import Block from './block.js';
import './editor.scss';
export default function ( { attributes, setAttributes } ) {
const {
className,
heading,
headingLevel,
showInputFields,
showFilterButton,
} = attributes;
const getInspectorControls = () => {
return (
<InspectorControls key="inspector">
<PanelBody
title={ __(
'Block Settings',
'woocommerce'
) }
>
<ToggleButtonControl
label={ __(
'Price Range',
'woocommerce'
) }
value={ showInputFields ? 'editable' : 'text' }
options={ [
{
label: __(
'Editable',
'woocommerce'
),
value: 'editable',
},
{
label: __(
'Text',
'woocommerce'
),
value: 'text',
},
] }
onChange={ ( value ) =>
setAttributes( {
showInputFields: value === 'editable',
} )
}
/>
<ToggleControl
label={ __(
'Filter button',
'woocommerce'
) }
help={
showFilterButton
? __(
'Products will only update when the button is pressed.',
'woocommerce'
)
: __(
'Products will update when the slider is moved.',
'woocommerce'
)
}
checked={ showFilterButton }
onChange={ () =>
setAttributes( {
showFilterButton: ! showFilterButton,
} )
}
/>
<p>
{ __(
'Heading Level',
'woocommerce'
) }
</p>
<HeadingToolbar
isCollapsed={ false }
minLevel={ 2 }
maxLevel={ 7 }
selectedLevel={ headingLevel }
onChange={ ( newLevel ) =>
setAttributes( { headingLevel: newLevel } )
}
/>
</PanelBody>
</InspectorControls>
);
};
const noProductsPlaceholder = () => (
<Placeholder
className="wc-block-price-slider"
icon={ <Icon srcElement={ bill } /> }
label={ __(
'Filter Products by Price',
'woocommerce'
) }
instructions={ __(
'Display a slider to filter products in your store by price.',
'woocommerce'
) }
>
<p>
{ __(
"Products with prices are needed for filtering by price. You haven't created any products yet.",
'woocommerce'
) }
</p>
<Button
className="wc-block-price-slider__add-product-button"
isSecondary
href={ getAdminLink( 'post-new.php?post_type=product' ) }
>
{ __( 'Add new product', 'woocommerce' ) +
' ' }
<Icon srcElement={ external } />
</Button>
<Button
className="wc-block-price-slider__read_more_button"
isTertiary
href="https://docs.woocommerce.com/document/managing-products/"
>
{ __( 'Learn more', 'woocommerce' ) }
</Button>
</Placeholder>
);
return (
<>
{ blocksConfig.productCount === 0 ? (
noProductsPlaceholder()
) : (
<div className={ className }>
{ getInspectorControls() }
<BlockTitle
headingLevel={ headingLevel }
heading={ heading }
onChange={ ( value ) =>
setAttributes( { heading: value } )
}
/>
<Disabled>
<Block attributes={ attributes } isEditor={ true } />
</Disabled>
</div>
) }
</>
);
}