@procraft/widget-order
Version:
Order widget for landing
48 lines • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.usePrices = void 0;
const react_1 = require("react");
const types_1 = require("../../modules/gql/generated/types");
/**
* Собираем общую информацию по выбранным элементам и ценам
*/
const usePrices = ({ fieldValues, fieldsValueSelected, }) => {
return (0, react_1.useMemo)(() => {
let price = 0;
let oldPrice = 0;
const fieldValuesGroups = {
Unknown: {
fieldValues: [],
},
Course: {
fieldValues: [],
},
Subscription: {
fieldValues: [],
},
LessonCount: {
fieldValues: [],
},
};
for (const typeKey in types_1.CatalogFieldValueType) {
fieldValues
.filter((n) => n.type ===
types_1.CatalogFieldValueType[typeKey])
.forEach((fieldValue) => {
const { type, extraPay, extraPayOriginal } = fieldValue;
fieldValuesGroups[type].fieldValues.push(fieldValue);
if (fieldsValueSelected.findIndex((n) => n.uid === fieldValue.uid)) {
price += extraPay;
oldPrice += extraPayOriginal || extraPay;
}
});
}
return {
fieldValuesGroups,
price,
oldPrice,
};
}, [fieldValues, fieldsValueSelected]);
};
exports.usePrices = usePrices;
//# sourceMappingURL=index.js.map