Your IP : 3.138.120.251


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/landing/history/src/action/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/landing/history/src/action/multiply.js

const {scrollTo, highlight} = BX.Landing.Utils;

/**
 * @param {object} entry
 * @return {Promise}
 */
export default function multiply(entry)
{
	let blockId = null;
	const updateBlockStateData = {};
	entry.params.forEach(singleAction => {
		if (!blockId && singleAction.params.block)
		{
			blockId = singleAction.params.block;
		}

		if (
			singleAction.command === 'editText'
			|| singleAction.command === 'editImage'
			|| singleAction.command === 'editEmbed'
			|| singleAction.command === 'editMap'
			|| singleAction.command === 'editIcon'
			|| singleAction.command === 'editLink'
		)
		{
			updateBlockStateData[singleAction.params.selector] = singleAction.params.value;
		}

		if (singleAction.command === 'updateDynamic')
		{
			updateBlockStateData.dynamicParams = singleAction.params.dynamicParams;
			updateBlockStateData.dynamicState = singleAction.params.dynamicState;
		}

		if (singleAction.command === 'changeAnchor')
		{
			updateBlockStateData.settings = {id: singleAction.params.value};
		}
	});

	return BX.Landing.PageObject.getInstance().blocks()
		.then((blocks) => {
			const block = blocks.get(blockId);
			if (block)
			{
				block.forceInit();

				return scrollTo(block.node)
					.then(() =>
					{
						void highlight(block.node);
						if (Object.keys(updateBlockStateData).length > 0)
						{
							block.updateBlockState(updateBlockStateData, true);
						}
					});
			}
		});
}