23 lines
676 B
TypeScript
23 lines
676 B
TypeScript
/**
|
|
* External dependencies
|
|
*/
|
|
import { CartShippingRate } from '@woocommerce/type-defs/cart';
|
|
|
|
/**
|
|
* Get an array of selected shipping rates keyed by Package ID.
|
|
*
|
|
* @param {Array} shippingRates Array of shipping rates.
|
|
* @return {Object} Object containing the package IDs and selected rates in the format: { [packageId:string]: rateId:string }
|
|
*/
|
|
export const deriveSelectedShippingRates = (
|
|
shippingRates: CartShippingRate[]
|
|
): Record< string, string | unknown > =>
|
|
Object.fromEntries(
|
|
shippingRates.map(
|
|
( { package_id: packageId, shipping_rates: packageRates } ) => [
|
|
packageId,
|
|
packageRates.find( ( rate ) => rate.selected )?.rate_id,
|
|
]
|
|
)
|
|
);
|