Appearance
Popup Widget
Внимание
Для встраивания используеться popup window, отсутствует проблема с third party cookies авторизация доступна
Методы API экземпляра PopupWidget
js
import { WidgetManager } from 'afisha-widget-manager'
const afishaWidgetManager = new WidgetManager('41fa9cef-a753-4119-8e44-45d013717a2a')
const afishaPopupWidget = afishaWidgetManager.appendWidget(
{
route: 'creations',
embedType: 'popup',
cityId: '2'
},
document.body
)open
js
/**
* Открывает виджет в модальном окне
* @returns {Promise<void>}
*/
afishaPopupWidget.open()close
js
/**
* Закрывает всплывающее окно с виджетом
* @returns {void}
*/
afishaPopupWidget.close()reload
js
/**
* Перезагружает виджет
* @returns {void}
*/
afishaPopupWidget.reload()mount
js
/**
* Монтирует кнопку для открытия виджета
* @param {boolean} [skipButton=false] - не монтировать кнопку
* @returns {void}
*/
afishaPopupWidget.mount()navigateTo
js
/**
* Сообщает виджету на какой route ему нужно перейти
* @param {Routes} route - наименование экрана на котором нужно открыть виджет
* @param {PartialRecord<SpecialTagsAttributes, string>} [params={}] - параметры виджета
*/
afishaPopupWidget.navigateTo('creationsType', {
creationType: 'movie',
cityId: '2'
})on
js
/**
* Подписка на события виджета
* @param {LifeCycleHooks} hook - событие
* @param {LifeCycleHook} fn - функция callback
*/
const { afterMount } = LIFECYCLE_HOOKS
afishaPopupWidget.on(afterMount, () => {
console.log('Виджет смотирован')
})sendMessage
js
/**
* Отправить post message напрямую в виджет
* @param {OutgoingPostMessages} id - событие
* @param {Object} params - параметры которые нужно отправить
*/
import { OUTGOING_POST_MESSAGES } from 'afisha-widget-manager'
afishaPopupWidget.sendMessage(managerSetPartnerECommerce, { currency: 'EUR', price: '200' })