woocommerce/plugins/woocommerce-blocks/assets/js/base/components/shipping-rates-control/package-options.js

64 lines
1.2 KiB
JavaScript

/**
* External dependencies
*/
import PropTypes from 'prop-types';
import RadioControl, {
RadioControlOptionLayout,
} from '@woocommerce/base-components/radio-control';
const PackageOptions = ( {
className,
noResultsMessage,
onChange,
options,
renderOption,
selected,
} ) => {
if ( options.length === 0 ) {
return (
<p className="wc-block-shipping-rates-control__no-results">
{ noResultsMessage }
</p>
);
}
if ( options.length > 1 ) {
return (
<RadioControl
className={ className }
onChange={ onChange }
selected={ selected }
options={ options.map( renderOption ) }
/>
);
}
const {
label,
secondaryLabel,
description,
secondaryDescription,
} = renderOption( options[ 0 ] );
return (
<RadioControlOptionLayout
className={ className }
label={ label }
secondaryLabel={ secondaryLabel }
description={ description }
secondaryDescription={ secondaryDescription }
/>
);
};
PackageOptions.propTypes = {
onChange: PropTypes.func.isRequired,
options: PropTypes.arrayOf( PropTypes.object ).isRequired,
renderOption: PropTypes.func.isRequired,
className: PropTypes.string,
noResultsMessage: PropTypes.string,
selected: PropTypes.string,
};
export default PackageOptions;