Convert `edit.js` to `edit.tsx` and replace `propTypes` with TypeScript definitions (https://github.com/woocommerce/woocommerce-blocks/pull/9823)

* Remove proptypes

* Refactor after review
This commit is contained in:
Alba Rincón 2023-06-16 09:30:54 +02:00 committed by GitHub
parent 2460a04abd
commit 8a67ae2f80
2 changed files with 18 additions and 28 deletions

View File

@ -10,9 +10,8 @@ import {
withSpokenMessages, withSpokenMessages,
} from '@wordpress/components'; } from '@wordpress/components';
import { SearchListItem } from '@woocommerce/editor-components/search-list-control'; import { SearchListItem } from '@woocommerce/editor-components/search-list-control';
import PropTypes from 'prop-types';
import ProductControl from '@woocommerce/editor-components/product-control'; import ProductControl from '@woocommerce/editor-components/product-control';
import { Icon, commentContent } from '@wordpress/icons'; import { commentContent, Icon } from '@wordpress/icons';
/** /**
* Internal dependencies * Internal dependencies
@ -24,20 +23,13 @@ import {
getSharedReviewContentControls, getSharedReviewContentControls,
getSharedReviewListControls, getSharedReviewListControls,
} from '../edit-utils.js'; } from '../edit-utils.js';
import { ReviewsByProductEditorProps } from './types';
/**
* Component to handle edit mode of "Reviews by Product".
*
* @param {Object} props Incoming props for the component.
* @param {Object} props.attributes Incoming block attributes.
* @param {function(any):any} props.debouncedSpeak
* @param {function(any):any} props.setAttributes Setter for block attributes.
*/
const ReviewsByProductEditor = ( { const ReviewsByProductEditor = ( {
attributes, attributes,
debouncedSpeak, debouncedSpeak,
setAttributes, setAttributes,
} ) => { }: ReviewsByProductEditorProps ) => {
const { editMode, productId } = attributes; const { editMode, productId } = attributes;
const renderProductControlItem = ( args ) => { const renderProductControlItem = ( args ) => {
@ -189,21 +181,4 @@ const ReviewsByProductEditor = ( {
); );
}; };
ReviewsByProductEditor.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,
// from withSpokenMessages
debouncedSpeak: PropTypes.func.isRequired,
};
export default withSpokenMessages( ReviewsByProductEditor ); export default withSpokenMessages( ReviewsByProductEditor );

View File

@ -0,0 +1,15 @@
/**
* External dependencies
*/
import { BlockEditProps } from '@wordpress/blocks';
interface ReviewByProductAttributes {
editMode: boolean;
productId: number;
}
export interface ReviewsByProductEditorProps
extends BlockEditProps< ReviewByProductAttributes > {
attributes: ReviewByProductAttributes;
debouncedSpeak: ( message: string ) => void;
}