Skip to content

Commit 4c6b98e

Browse files
committed
Wrapping return output of addEventListener with convenience class for easy removal.
1 parent f805196 commit 4c6b98e

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

index.d.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ declare module 'react-native-callkeep' {
7575
}
7676

7777
type HandleType = 'generic' | 'number' | 'email';
78-
type EventListener = {};
7978

8079
export type AudioRoute = {
8180
name: string,
@@ -127,6 +126,10 @@ declare module 'react-native-callkeep' {
127126
}
128127
};
129128

129+
export class EventListener {
130+
remove(): void
131+
}
132+
130133
export default class RNCallKeep {
131134
static getInitialEvents(): Promise<InitialEvents>
132135

@@ -137,12 +140,7 @@ declare module 'react-native-callkeep' {
137140
handler: EventHandlers[Event],
138141
): EventListener
139142

140-
/**
141-
* @description Remove specific event listener if given, otherwise remove all belonging to the given event type.
142-
* @param type
143-
* @param listener
144-
*/
145-
static removeEventListener(type: Events, listener?: EventListener): void
143+
static removeEventListener(type: Events): void
146144

147145
static setup(options: IOptions): Promise<boolean>
148146

index.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,17 @@ const CONSTANTS = {
1919

2020
export { emit, CONSTANTS };
2121

22+
class EventListener {
23+
constructor(type, listener) {
24+
this._type = type;
25+
this._listener = listener;
26+
}
27+
28+
remove = () => {
29+
RNCallKeep.removeEventListener(this._type, this._listener);
30+
};
31+
}
32+
2233
class RNCallKeep {
2334
constructor() {
2435
this._callkeepEventHandlers = new Map();
@@ -32,7 +43,7 @@ class RNCallKeep {
3243

3344
this._callkeepEventHandlers.set(type, listenerSet);
3445

35-
return listener;
46+
return new EventListener(type, listener);
3647
};
3748

3849
removeEventListener = (type, listener = undefined) => {

0 commit comments

Comments
 (0)