Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
primogenial
/
languages
/
wp-content
/
plugins
/
woocommerce
/
packages
/
woocommerce-blocks
/
assets
/
js
/
hocs
:
with-transform-single-select-to-multiple-select.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/** * External dependencies */ import { Component } from '@wordpress/element'; import { createHigherOrderComponent } from '@wordpress/compose'; import PropTypes from 'prop-types'; /** * HOC that transforms a single select to a multiple select. * * @param {Function} OriginalComponent Component being wrapped. */ const withTransformSingleSelectToMultipleSelect = createHigherOrderComponent( ( OriginalComponent ) => { class WrappedComponent extends Component { render() { const { selected } = this.props; const isNil = selected === null || selected === undefined; return Array.isArray( selected ) ? ( <OriginalComponent { ...this.props } /> ) : ( <OriginalComponent { ...this.props } selected={ isNil ? [] : [ selected ] } /> ); } } WrappedComponent.propTypes = { selected: PropTypes.oneOfType( [ PropTypes.number, PropTypes.string, ] ), }; WrappedComponent.defaultProps = { selected: null, }; return WrappedComponent; }, 'withTransformSingleSelectToMultipleSelect' ); export default withTransformSingleSelectToMultipleSelect;