woocommerce/plugins/woocommerce-blocks/assets/js/extensions/shipping-methods/pickup-location/utils.ts

50 lines
1.1 KiB
TypeScript
Raw Normal View History

/**
* External dependencies
*/
import { cleanForSlug } from '@wordpress/url';
import { getSetting } from '@woocommerce/settings';
/**
* Internal dependencies
*/
import type {
PickupLocation,
SortablePickupLocation,
ShippingMethodSettings,
} from './types';
export const indexLocationsById = (
locations: PickupLocation[]
): SortablePickupLocation[] => {
return locations.map( ( value, index ) => {
return {
...value,
id: cleanForSlug( value.name ) + '-' + index,
};
} );
};
export const defaultSettings = {
enabled: 'yes',
title: '',
tax_status: 'taxable',
cost: '',
};
export const getInitialSettings = (): ShippingMethodSettings => {
const settings = getSetting(
'pickupLocationSettings',
defaultSettings
) as typeof defaultSettings;
return {
enabled: settings?.enabled === 'yes',
title: settings?.title || defaultSettings.title,
tax_status: settings?.tax_status || defaultSettings.tax_status,
cost: settings?.cost || defaultSettings.cost,
};
};
export const getInitialPickupLocations = (): SortablePickupLocation[] =>
indexLocationsById( getSetting( 'pickupLocations', [] ) );