/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { createBlock, registerBlockType } from '@wordpress/blocks'; import { Icon, discussion } from '@woocommerce/icons'; /** * Internal dependencies */ import '../editor.scss'; import Editor from './edit'; import sharedAttributes from '../attributes'; import save from '../save.js'; import { example } from '../example'; /** * Register and run the "All Reviews" block. * This block lists all product reviews. */ registerBlockType( 'woocommerce/all-reviews', { title: __( 'All Reviews', 'woo-gutenberg-products-block' ), icon: { src: , foreground: '#96588a', }, category: 'woocommerce', keywords: [ __( 'WooCommerce', 'woo-gutenberg-products-block' ) ], description: __( 'Show a list of all product reviews.', 'woo-gutenberg-products-block' ), supports: { html: false, }, example: { ...example, attributes: { ...example.attributes, showProductName: true, }, }, attributes: { ...sharedAttributes, /** * Show the product name. */ showProductName: { type: 'boolean', default: true, }, }, transforms: { from: [ { type: 'block', blocks: [ 'core/legacy-widget' ], // We can't transform if raw instance isn't shown in the REST API. isMatch: ( { idBase, instance } ) => idBase === 'woocommerce_recent_reviews' && !! instance?.raw, transform: ( { instance } ) => createBlock( 'woocommerce/all-reviews', { reviewsOnPageLoad: instance.raw.number, imageType: 'product', showLoadMore: false, showOrderby: false, showReviewDate: false, showReviewContent: false, } ), }, ], }, /** * Renders and manages the block. * * @param {Object} props Props to pass to block. */ edit( props ) { return ; }, /** * Save the props to post content. */ save, } );