Remove propTypes definitions from All Reviews block (https://github.com/woocommerce/woocommerce-blocks/pull/9631)

* converted all-reviews block to tsx and removed proptypes

* Update assets/js/blocks/reviews/all-reviews/index.tsx

Co-authored-by: Niels Lange <niels.lange@a8c.com>

* Update assets/js/blocks/reviews/all-reviews/edit.tsx

Co-authored-by: Niels Lange <niels.lange@a8c.com>

* Update assets/js/blocks/reviews/all-reviews/block.tsx

Co-authored-by: Niels Lange <niels.lange@a8c.com>

---------

Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: Niels Lange <niels.lange@a8c.com>
This commit is contained in:
Hritik Chaudhary 2023-06-06 18:16:49 +05:30 committed by GitHub
parent 525bd58c74
commit 93119e9de6
5 changed files with 45 additions and 23 deletions

View File

@ -4,18 +4,18 @@
import { __ } from '@wordpress/i18n';
import { InspectorControls } from '@wordpress/block-editor';
import { PanelBody, ToggleControl } from '@wordpress/components';
import PropTypes from 'prop-types';
import { Icon, postComments } from '@wordpress/icons';
/**
* Internal dependencies
*/
import EditorContainerBlock from '../editor-container-block.js';
import NoReviewsPlaceholder from './no-reviews-placeholder.js';
import NoReviewsPlaceholder from './no-reviews-placeholder';
import {
getSharedReviewContentControls,
getSharedReviewListControls,
} from '../edit-utils.js';
import type { AllReviewsEditorProps } from './types';
/**
* Component to handle edit mode of "All Reviews".
@ -24,7 +24,10 @@ import {
* @param {Object} props.attributes Incoming block attributes.
* @param {function(any):any} props.setAttributes Setter for block attributes.
*/
const AllReviewsEditor = ( { attributes, setAttributes } ) => {
const AllReviewsEditor = ( {
attributes,
setAttributes,
}: AllReviewsEditorProps ) => {
const getInspectorControls = () => {
return (
<InspectorControls key="inspector">
@ -72,25 +75,10 @@ const AllReviewsEditor = ( { attributes, setAttributes } ) => {
/>
}
name={ __( 'All Reviews', 'woo-gutenberg-products-block' ) }
noReviewsPlaceholder={ NoReviewsPlaceholder }
noReviewsPlaceholder={ NoReviewsPlaceholder() }
/>
</>
);
};
AllReviewsEditor.propTypes = {
/**
* The attributes for this block.
*/
attributes: PropTypes.object.isRequired,
/**
* The register block name.
*/
name: PropTypes.string.isRequired,
/**
* A callback to update attributes.
*/
setAttributes: PropTypes.func.isRequired,
};
export default AllReviewsEditor;

View File

@ -0,0 +1,20 @@
/**
* External dependencies
*/
import { useBlockProps } from '@wordpress/block-editor';
/**
* Internal dependencies
*/
import Block from './block';
import type { AllReviewsEditorProps } from './types';
export const Edit = ( props: unknown & AllReviewsEditorProps ): JSX.Element => {
const blockProps = useBlockProps();
return (
<div { ...blockProps }>
<Block { ...props } />
</div>
);
};

View File

@ -9,10 +9,11 @@ import { Icon, postComments } from '@wordpress/icons';
* Internal dependencies
*/
import '../editor.scss';
import edit from './edit';
import { Edit } from './edit';
import sharedAttributes from '../attributes';
import save from '../save.js';
import { example } from '../example';
import type { AllReviewsEditorProps } from './types';
/**
* Register and run the "All Reviews" block.
@ -68,7 +69,7 @@ registerBlockType( 'woocommerce/all-reviews', {
type: 'block',
blocks: [ 'core/legacy-widget' ],
// We can't transform if raw instance isn't shown in the REST API.
isMatch: ( { idBase, instance } ) =>
isMatch: ( { idBase, instance }: AllReviewsEditorProps ) =>
idBase === 'woocommerce_recent_reviews' && !! instance?.raw,
transform: ( { instance } ) =>
createBlock( 'woocommerce/all-reviews', {
@ -83,6 +84,6 @@ registerBlockType( 'woocommerce/all-reviews', {
],
},
edit,
edit: Edit,
save,
} );

View File

@ -5,7 +5,7 @@ import { __ } from '@wordpress/i18n';
import { Placeholder } from '@wordpress/components';
import { Icon, postComments } from '@wordpress/icons';
const NoCategoryReviewsPlaceholder = () => {
const NoCategoryReviewsPlaceholder = (): JSX.Element => {
return (
<Placeholder
className="wc-block-all-reviews"

View File

@ -0,0 +1,13 @@
export interface AllReviewsEditorProps {
attributes: {
showProductName: boolean;
};
setAttributes: ( attributes: { showProductName?: boolean } ) => void;
debouncedSpeak: ( message: string ) => void;
idBase: unknown;
instance: {
raw: {
number: number;
};
};
}