Checkout na vaši stránku hlásí, co právě dělá. Přihlaste se k odběru pomocí on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Jeden listener na název události
on() ukládá jeden callback pro každý název události. Registrace druhého callbacku se stejným názvem nahradí první – nepřidá se k němu:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() odebere cokoli, co je pro daný název zaregistrováno. Ignoruje callback, který mu předáte, takže off('checkout.closed', b) a off('checkout.closed') dělají totéž.
Pokud potřebuje na stejnou událost reagovat několik částí stránky, zaregistrujte jeden callback a reakce rozešlete z něj.
Přihlášení k odběru několika událostí najednou
Obě metody přijímají řetězec názvů oddělených mezerami nebo pole názvů a pro každý z nich zaregistrují stejný callback:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Payload
Každý callback obdrží jeden objekt:
| Pole | Typ | Popis |
|---|---|---|
name | string | Název události, užitečný, když jeden callback obsluhuje několik událostí. |
context | object | Obsahuje eventID – událost, ke které tento checkout patří. |
data | object | Podrobnosti specifické pro danou událost. |
Dostupné události
| Název | Kdy se vyvolá |
|---|---|
checkout.ready | Checkout se načetl a je připraven k interakci. V tomto okamžiku klient také předá clientContext, který jste předali metodě book(). |
checkout.closed | Checkout se zavřel. Klient odstraní panel nebo okno a vymaže pozadí. |
checkout.consent | Návštěvník odpověděl na oznámení o podmínkách. Hodnota data.consent je true, pokud je přijal, a klient si ji zapamatuje, takže se tento krok příště přeskočí. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Listenery přetrvají jednotlivé rezervace
Listenery patří instanci, nikoli rezervaci. Zaregistrujte je jednou po vytvoření klienta a budou platit pro každé volání book(). K rozlišení rezervací použijte payload.context.eventID:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Volání destroy() je všechny zastaví – instance přestane úplně naslouchat zprávám z checkoutu.
Zprávy z jiných zdrojů jsou ignorovány
Klient přijímá zprávy pouze z původu checkoutu Entase, takže nesouvisející provoz postMessage na vaší stránce se nikdy nedostane k vašim callbackům.