Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/catalog/store-enable-wizard/src/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/catalog/store-enable-wizard/src/enable-wizard-opener.js

import { Type, Loc } from 'main.core';

const ENABLED_SESSION_KEY = 'b24:catalog:inventory-management:enabled';

export class EnableWizardOpener
{
	open(url, params = {}): Promise
	{
		const sliderParams = Type.isPlainObject(params) ? params : {};

		return new Promise((resolve) => {
			const data = sliderParams.data ?? {};
			const events = sliderParams.events ?? {};
			events.onClose = events.onClose ?? ((event) => resolve(event.getSlider()));

			const urlParams = params.urlParams || {};
			const sliderUrl = BX.util.add_url_param(
				url,
				{
					analyticsLabel: 'inventoryManagementEnabled_openSlider',
					...urlParams,
				},
			);

			if (Type.isString(sliderUrl) && sliderUrl.length > 1)
			{
				BX.SidePanel.Instance.open(sliderUrl, {
					cacheable: false,
					allowChangeHistory: false,
					events,
					data,
					width: 930,
				});
			}
			else
			{
				resolve();
			}
		});
	}

	static saveEnabledFlag(): void
	{
		if (!window.sessionStorage)
		{
			return;
		}

		sessionStorage.setItem(ENABLED_SESSION_KEY, 'y');
	}

	static showEnabledNotificationIfNeeded(): void
	{
		if (!window.sessionStorage)
		{
			return;
		}

		if (sessionStorage.getItem(ENABLED_SESSION_KEY) === 'y')
		{
			sessionStorage.removeItem(ENABLED_SESSION_KEY);

			window.top.BX.UI.Notification.Center.notify({
				content: Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_ENABLED'),
				autoHide: true,
				autoHideDelay: 4000,
				width: 'auto',
			});
		}
	}
}