2019-08-19 14:13:07 +00:00
import { _ _ , sprintf } from '@wordpress/i18n' ;
import { Fragment , RawHTML } from '@wordpress/element' ;
import {
Notice ,
ToggleControl ,
RangeControl ,
SelectControl ,
} from '@wordpress/components' ;
import { getAdminLink } from '@woocommerce/navigation' ;
2019-08-22 20:56:47 +00:00
import { ENABLE _REVIEW _RATING , SHOW _AVATARS } from '@woocommerce/settings' ;
2019-08-19 14:13:07 +00:00
/ * *
* Internal dependencies
* /
import ToggleButtonControl from '../../components/toggle-button-control' ;
export const getSharedReviewContentControls = ( attributes , setAttributes ) => {
return (
< Fragment >
< ToggleControl
label = { _ _ ( 'Product rating' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showReviewRating }
onChange = { ( ) => setAttributes ( { showReviewRating : ! attributes . showReviewRating } ) }
/ >
{ ( attributes . showReviewRating && ! ENABLE _REVIEW _RATING ) && (
2019-08-21 10:48:22 +00:00
< Notice className = "wc-block-reviews__notice" isDismissible = { false } >
2019-08-19 14:13:07 +00:00
< RawHTML >
{ sprintf ( _ _ ( 'Product rating is disabled in your %sstore settings%s.' , 'woo-gutenberg-products-block' ) , ` <a href=" ${ getAdminLink ( 'admin.php?page=wc-settings&tab=products' ) } " target="_blank"> ` , '</a>' ) }
< / R a w H T M L >
< / N o t i c e >
) }
< ToggleControl
label = { _ _ ( 'Reviewer name' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showReviewerName }
onChange = { ( ) => setAttributes ( { showReviewerName : ! attributes . showReviewerName } ) }
/ >
< ToggleControl
label = { _ _ ( 'Image' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showReviewImage }
onChange = { ( ) => setAttributes ( { showReviewImage : ! attributes . showReviewImage } ) }
/ >
< ToggleControl
label = { _ _ ( 'Review date' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showReviewDate }
onChange = { ( ) => setAttributes ( { showReviewDate : ! attributes . showReviewDate } ) }
/ >
< ToggleControl
label = { _ _ ( 'Review content' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showReviewContent }
onChange = { ( ) => setAttributes ( { showReviewContent : ! attributes . showReviewContent } ) }
/ >
{ attributes . showReviewImage && (
< Fragment >
< ToggleButtonControl
label = { _ _ ( 'Review image' , 'woo-gutenberg-products-block' ) }
value = { attributes . imageType }
options = { [
{ label : _ _ ( 'Reviewer photo' , 'woo-gutenberg-products-block' ) , value : 'reviewer' } ,
{ label : _ _ ( 'Product' , 'woo-gutenberg-products-block' ) , value : 'product' } ,
] }
onChange = { ( value ) => setAttributes ( { imageType : value } ) }
/ >
{ ( attributes . imageType === 'reviewer' && ! SHOW _AVATARS ) && (
2019-08-21 10:48:22 +00:00
< Notice className = "wc-block-reviews__notice" isDismissible = { false } >
2019-08-19 14:13:07 +00:00
< RawHTML >
{ sprintf ( _ _ ( 'Reviewer photo is disabled in your %ssite settings%s.' , 'woo-gutenberg-products-block' ) , ` <a href=" ${ getAdminLink ( 'options-discussion.php' ) } " target="_blank"> ` , '</a>' ) }
< / R a w H T M L >
< / N o t i c e >
) }
< / F r a g m e n t >
) }
< / F r a g m e n t >
) ;
} ;
export const getSharedReviewListControls = ( attributes , setAttributes ) => {
const minPerPage = 1 ;
const maxPerPage = 20 ;
return (
< Fragment >
< ToggleControl
label = { _ _ ( 'Order by' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showOrderby }
onChange = { ( ) => setAttributes ( { showOrderby : ! attributes . showOrderby } ) }
/ >
< SelectControl
label = { _ _ ( 'Order Product Reviews by' , 'woo-gutenberg-products-block' ) }
value = { attributes . orderby }
options = { [
{ label : 'Most recent' , value : 'most-recent' } ,
{ label : 'Highest Rating' , value : 'highest-rating' } ,
{ label : 'Lowest Rating' , value : 'lowest-rating' } ,
] }
onChange = { ( orderby ) => setAttributes ( { orderby } ) }
/ >
< RangeControl
label = { _ _ ( 'Starting Number of Reviews' , 'woo-gutenberg-products-block' ) }
value = { attributes . reviewsOnPageLoad }
onChange = { ( reviewsOnPageLoad ) => setAttributes ( { reviewsOnPageLoad } ) }
max = { maxPerPage }
min = { minPerPage }
/ >
< ToggleControl
label = { _ _ ( 'Load more' , 'woo-gutenberg-products-block' ) }
checked = { attributes . showLoadMore }
onChange = { ( ) => setAttributes ( { showLoadMore : ! attributes . showLoadMore } ) }
/ >
{ attributes . showLoadMore && (
< RangeControl
label = { _ _ ( 'Load More Reviews' , 'woo-gutenberg-products-block' ) }
value = { attributes . reviewsOnLoadMore }
onChange = { ( reviewsOnLoadMore ) => setAttributes ( { reviewsOnLoadMore } ) }
max = { maxPerPage }
min = { minPerPage }
/ >
) }
< / F r a g m e n t >
) ;
} ;