From 93119e9de62b6bac9a82b1e7e4f5b62bbd4c2c4b Mon Sep 17 00:00:00 2001 From: Hritik Chaudhary Date: Tue, 6 Jun 2023 18:16:49 +0530 Subject: [PATCH] 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 * Update assets/js/blocks/reviews/all-reviews/edit.tsx Co-authored-by: Niels Lange * Update assets/js/blocks/reviews/all-reviews/block.tsx Co-authored-by: Niels Lange --------- Co-authored-by: Niels Lange Co-authored-by: Niels Lange --- .../all-reviews/{edit.js => block.tsx} | 26 +++++-------------- .../js/blocks/reviews/all-reviews/edit.tsx | 20 ++++++++++++++ .../all-reviews/{index.js => index.tsx} | 7 ++--- ...ceholder.js => no-reviews-placeholder.tsx} | 2 +- .../js/blocks/reviews/all-reviews/types.ts | 13 ++++++++++ 5 files changed, 45 insertions(+), 23 deletions(-) rename plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/{edit.js => block.tsx} (78%) create mode 100644 plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.tsx rename plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/{index.js => index.tsx} (91%) rename plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/{no-reviews-placeholder.js => no-reviews-placeholder.tsx} (92%) create mode 100644 plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/types.ts diff --git a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.js b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/block.tsx similarity index 78% rename from plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.js rename to plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/block.tsx index 633978e75a9..06d89e890f5 100644 --- a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.js +++ b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/block.tsx @@ -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 ( @@ -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; diff --git a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.tsx b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.tsx new file mode 100644 index 00000000000..d989874bb75 --- /dev/null +++ b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/edit.tsx @@ -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 ( +
+ +
+ ); +}; diff --git a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.js b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.tsx similarity index 91% rename from plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.js rename to plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.tsx index fcf4de14b85..c05a1dd6599 100644 --- a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.js +++ b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/index.tsx @@ -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, } ); diff --git a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.js b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.tsx similarity index 92% rename from plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.js rename to plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.tsx index 442ef84feb2..bc305ff1fbc 100644 --- a/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.js +++ b/plugins/woocommerce-blocks/assets/js/blocks/reviews/all-reviews/no-reviews-placeholder.tsx @@ -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 ( void; + debouncedSpeak: ( message: string ) => void; + idBase: unknown; + instance: { + raw: { + number: number; + }; + }; +}