mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-05 08:59:14 +08:00
27 lines
655 B
JavaScript
27 lines
655 B
JavaScript
import { useCallback } from '@wordpress/element';
|
|
|
|
const isObject = ( value ) => typeof value === 'object' && value !== null;
|
|
const isNonEmptyString = ( value ) => value !== '';
|
|
|
|
const removeEmptyValues = ( obj ) => {
|
|
if ( ! isObject( obj ) ) {
|
|
return obj;
|
|
}
|
|
|
|
return Object.fromEntries(
|
|
Object.entries( obj )
|
|
.map( ( [ key, value ] ) => [
|
|
key,
|
|
isObject( value ) ? removeEmptyValues( value ) : value,
|
|
] )
|
|
.filter( ( [ _, value ] ) =>
|
|
isObject( value )
|
|
? Object.keys( value ).length > 0
|
|
: isNonEmptyString( value )
|
|
)
|
|
);
|
|
};
|
|
|
|
export const useDeleteEmptyKeys = () => {
|
|
return useCallback( removeEmptyValues, [] );
|
|
};
|