File "with-editing-image.tsx"
Full Path: /home/warrior1/public_html/wp-content-20241001222009/plugins/woocommerce/packages/woocommerce-blocks/assets/js/blocks/featured-items/with-editing-image.tsx
File size: 753 bytes
MIME-type: text/x-java
Charset: utf-8
/**
* External dependencies
*/
import { ComponentType, useEffect, useState } from 'react';
/**
* Internal dependencies
*/
import { EditorBlock } from './types';
interface EditingImageRequiredProps {
isSelected: boolean;
}
type EditingImageProps< T extends EditorBlock< T > > = T &
EditingImageRequiredProps;
export const withEditingImage =
< T extends EditorBlock< T > >( Component: ComponentType< T > ) =>
( props: EditingImageProps< T > ) => {
const [ isEditingImage, setIsEditingImage ] = useState( false );
const { isSelected } = props;
useEffect( () => {
setIsEditingImage( false );
}, [ isSelected ] );
return (
<Component
{ ...props }
useEditingImage={ [ isEditingImage, setIsEditingImage ] }
/>
);
};