Kassan rapporterar tillbaka till din sida vad den gör. Prenumerera med on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});En lyssnare per händelsenamn
on() lagrar en callback per händelsenamn. Att registrera en andra callback för samma namn ersätter den första – den läggs inte till:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a är borta; endast b körsoff() tar bort det som är registrerat för ett namn. Den ignorerar alla callbackar du skickar med, så off('checkout.closed', b) och off('checkout.closed') gör samma sak.
Om flera delar av din sida behöver reagera på samma händelse registrerar du en callback och fördelar vidare inifrån den.
Prenumerera på flera händelser samtidigt
Båda metoderna accepterar en blankstegsavgränsad sträng eller en array med namn och registrerar samma callback för varje namn:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Payloaden
Varje callback tar emot ett objekt:
| Fält | Typ | Beskrivning |
|---|---|---|
name | string | Händelsenamnet, användbart när en callback hanterar flera. |
context | object | Innehåller eventID – evenemanget som den här kassan hör till. |
data | object | Händelsespecifika detaljer. |
Tillgängliga händelser
| Namn | När den utlöses |
|---|---|
checkout.ready | Kassan har lästs in och är klar att interagera med. Det är också då klienten lämnar över den clientContext som du skickade till book(). |
checkout.closed | Kassan har stängts. Klienten monterar ned panelen eller fönstret och tar bort bakgrundsskiktet. |
checkout.consent | Besökaren har svarat på meddelandet om villkoren. data.consent är true när de godkände, och klienten kommer ihåg det så att steget hoppas över nästa gång. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Lyssnare överlever enskilda bokningar
Lyssnare tillhör instansen, inte en bokning. Registrera dem en gång efter att du har skapat klienten, så gäller de för varje book()-anrop. Använd payload.context.eventID för att skilja bokningar åt:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Att anropa destroy() stoppar dem alla – instansen slutar helt att lyssna efter meddelanden från kassan.
Meddelanden från andra källor ignoreras
Klienten tar endast emot meddelanden från Entase-kassans ursprung, så orelaterad postMessage-trafik på din sida når aldrig dina callbackar.