@procraft/widget-order
Version:
Order widget for landing
56 lines • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useOrderLink = void 0;
const react_1 = require("react");
/**
* Формируем ссылку на оплату
*/
const useOrderLink = ({ orderLink, orderLinkParams, catalogItem, fieldsValueSelected, sale, }) => {
// const [origin, originSetter] = useState(global.location?.origin || 'https://localhost')
const [origin, originSetter] = (0, react_1.useState)('https://localhost');
(0, react_1.useEffect)(() => {
var _a;
originSetter(((_a = global.location) === null || _a === void 0 ? void 0 : _a.origin) || 'https://localhost');
}, []);
return (0, react_1.useMemo)(() => {
// TODO надо переделать систему ссылок, чтобы на вход передавался базовый домен.
// Это важно для вставки виджетов на сторонние сайты (сейчас ссылка на текущий домен идет)
// const uri = new URL(`${orderLink}/${item.catalogItem.uid}`, location.origin)
const uri = new URL(`${orderLink}/${catalogItem.uid}`,
// global.location?.origin || 'https://localhost'
origin);
if (orderLinkParams) {
Object.entries(orderLinkParams).forEach(([key, value]) => {
uri.searchParams.append(key, value);
});
}
/**
* Если мы берем по скидке, то берем все выбранные элементы из элементов этой скидки
*/
if (sale) {
uri.searchParams.append('sale', sale.id);
// sale.benefitItems.forEach((benefitItem) => {
// benefitItem.fieldValues
// ?.filter((n) => n.isSelected === true)
// .forEach((fieldValue) => {
// uri.searchParams.append('fieldValuesQuery', fieldValue.uid)
// })
// })
}
// else {
fieldsValueSelected.forEach((n) => {
uri.searchParams.append('fieldValuesQuery', n.uid);
});
// }
return uri;
}, [
catalogItem.uid,
fieldsValueSelected,
orderLink,
orderLinkParams,
origin,
sale,
]);
};
exports.useOrderLink = useOrderLink;
//# sourceMappingURL=index.js.map