Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 11x 3x 3x 5x 2x 1x 1x 2x 13x 6x 7x 1x 1x 1x | import {
CallAnsweredEventData,
CallEndedEventData,
CallRingingEventData,
JustCallDialerEmittableEvent,
JustCallDialerEmittableEventWithData,
LoggedInEventData,
LoginCallback,
LogoutCallback,
} from "../types";
import { JustcallDialerErrorCode, handleError } from "../utils/errors";
export class JustCallClientEventEmitter {
private dialerEventListeners: Map<JustCallDialerEmittableEvent, Function> =
new Map();
private emit(event: JustCallDialerEmittableEventWithData) {
const listener = this.dialerEventListeners.get(event.name);
/* istanbul ignore if -- @preserve */
if (listener) {
listener(event.data);
}
}
public addDialerEventListener(
event: JustCallDialerEmittableEvent,
callback: Function
) {
this.dialerEventListeners.set(event, callback);
}
public unsubscribeFromDialerEvent(event: JustCallDialerEmittableEvent) {
if (this.dialerEventListeners.has(event)) {
this.dialerEventListeners.delete(event);
} else throw handleError(JustcallDialerErrorCode.not_subscribed_to_event);
}
public unsubscribeAll() {
this.dialerEventListeners.clear();
}
public handleLoggedIn(
data: LoggedInEventData,
onLogin: LoginCallback | null,
onLogout: LogoutCallback | null
): void {
if (data.logged_in) {
Eif (onLogin) onLogin(data);
} else {
Eif (onLogout) onLogout();
}
}
public handleCallRinging(data: CallRingingEventData): void {
this.emit({ name: "call-ringing", data });
}
public handleCallAnswered(data: CallAnsweredEventData): void {
this.emit({ name: "call-answered", data });
}
public handleCallEnded(data: CallEndedEventData): void {
this.emit({ name: "call-ended", data });
}
}
|