DigitalConsumer.ISS/src/helpers/line-items-helper.js
2024-08-28 14:35:31 -04:00

19 lines
830 B
JavaScript

// eslint-disable-next-line import/prefer-default-export
export function getLineItemsFlattened(lineItems) {
return lineItems?.flatMap((li) => [li, ...(getLineItemsFlattened(li.childParts))]) ?? [];
}
export function findLineItemIndex(lineItems, partNumber, startIndex = 0) {
return lineItems.findIndex((li, index) => index >= startIndex && li.partNumber === partNumber);
}
// replaces partNumber, which is initially NAGS format, with the safelite part number
export function mapSafelitePartNumberToPartNumberIfExists(lineItems) {
return lineItems?.map(({ childParts, ...rest }) => ({
...rest,
partNumber: rest.safelitePartNumber || rest.partNumber,
childParts: childParts?.map((part) => ({
partNumber: part.safelitePartNumber || part.partNumber
})) ?? []
})) ?? [];
}