DigitalConsumer.ISS/src/helpers/line-items-helper.js
Michaela Brydon c18b6bf8b9 adding tests
2024-08-23 13:41:08 -04:00

19 lines
799 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 mapSafelitePartNumberToPartNumber(lineItems) {
return lineItems?.map(({ safelitePartNumber, childParts, ...rest }) => ({
...rest,
partNumber: safelitePartNumber,
childParts: childParts?.map((part) => ({
partNumber: part.safelitePartNumber
})) ?? []
})) ?? [];
}