Il checkout comunica alla tua pagina ciò che sta facendo. Iscriviti con on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Un listener per nome evento
on() memorizza una callback per nome evento. La registrazione di una seconda callback per lo stesso nome sostituisce la prima – non si aggiunge a essa:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() rimuove qualsiasi elemento registrato per un nome. Ignora qualsiasi callback le venga passata, quindi off('checkout.closed', b) e off('checkout.closed') fanno la stessa cosa.
Se più parti della tua pagina devono reagire allo stesso evento, registra una callback e distribuisci le azioni al suo interno.
Iscriversi a più eventi contemporaneamente
Entrambi i metodi accettano una stringa con nomi separati da spazi o un array di nomi, registrando la stessa callback per ciascuno:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Il payload
Ogni callback riceve un oggetto:
| Campo | Tipo | Descrizione |
|---|---|---|
name | string | Il nome dell'evento, utile quando una callback ne gestisce diversi. |
context | object | Contiene eventID – l'evento a cui appartiene questo checkout. |
data | object | Dettagli specifici dell'evento. |
Eventi disponibili
| Nome | Quando viene attivato |
|---|---|
checkout.ready | Il checkout è stato caricato ed è pronto per l'interazione. È anche il momento in cui il client trasferisce il clientContext passato a book(). |
checkout.closed | Il checkout è stato chiuso. Il client rimuove il pannello o la finestra e cancella lo sfondo. |
checkout.consent | Il visitatore ha risposto all'avviso sui termini. data.consent è true quando ha accettato e il client lo memorizza, così il passaggio viene saltato la volta successiva. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});I listener persistono tra le singole prenotazioni
I listener appartengono all'istanza, non a una prenotazione. Registrali una volta, dopo aver creato il client, e si applicheranno a ogni chiamata book(). Usa payload.context.eventID per distinguere le prenotazioni:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});La chiamata a destroy() li interrompe tutti – l'istanza smette completamente di ascoltare i messaggi dal checkout.
I messaggi provenienti da altre fonti vengono ignorati
Il client accetta messaggi solo dall'origine del checkout Entase, quindi il traffico postMessage non correlato sulla tua pagina non raggiungerà mai le tue callback.