Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/catalog/external-catalog-stub/src/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/catalog/external-catalog-stub/src/external-catalog-stub.js

import { Slider } from 'catalog.config.settings';
import { Event, Loc, Tag } from 'main.core';
import { SidePanel } from 'ui.sidepanel';
import './style.css';

type StubParams = {
	title: string,
	text: string,
	icon: string,
}

export class ExternalCatalogStub
{
	static showCatalogStub(): void
	{
		SidePanel.Instance.open('catalog:external-catalog-stub', {
			contentCallback: (slider) => {
				return ExternalCatalogStub.#getStubLayout({
					title: Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_EMPTY_STATE_TITLE_CATALOG'),
					text: Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_EMPTY_STATE_CATALOG_TEXT'),
					icon: '1c',
				});
			},
			width: 880,
		});
	}

	static showDocsStub(): void
	{
		SidePanel.Instance.open('catalog:external-catalog-docs-stub', {
			contentCallback: (slider) => {
				return ExternalCatalogStub.#getStubLayout({
					title: Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_EMPTY_STATE_TITLE'),
					text: Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_EMPTY_STATE_DOCS_TEXT'),
					icon: 'docs',
				});
			},
			width: 880,
		});
	}

	static #getStubLayout(params: StubParams): HTMLElement
	{
		const settingsButton = Tag.render`
			<div class="ui-btn ui-btn-success ui-btn-round ui-btn-lg">
				${Loc.getMessage('CATALOG_INVENTORY_MANAGEMENT_EMPTY_STATE_BUTTON')}
			</div>
		`;
		Event.bind(settingsButton, 'click', () => {
			Slider.open();
		});

		return Tag.render`
			<div class="inventory-management__empty-state --1c">
				<div class="inventory-management__empty-state-title">
					${params.title}
				</div>
				<div class="inventory-management__empty-state-text">
					${params.text}
				</div>
				<div class="inventory-management__empty-state-logo --${params.icon}"></div>
				${settingsButton}
			</div>
		`;
	}
}