Skip to content

Commit 023a373

Browse files
author
queue-it
committed
Preparing release 1.1.11
1 parent e220685 commit 023a373

File tree

4 files changed

+93
-43
lines changed

4 files changed

+93
-43
lines changed

android/src/main/java/com/reactnativequeueit/QueueItModule.kt

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,52 @@ class QueueItModule(reactContext: ReactApplicationContext)
9292
@ReactMethod
9393
fun runAsync(customerId: String, eventAlias: String, layoutName: String?, language: String?, promise: Promise) {
9494
handler.post {
95-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
96-
queueEngine.run(context.currentActivity)
95+
if (context.currentActivity == null) {
96+
promise.reject("error", "Calling QueueItRun with a null activity/context")
97+
return@post
98+
}
99+
try {
100+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
101+
queueEngine.run(context.currentActivity)
102+
} catch (e: Exception) {
103+
promise.reject("error", e.message)
104+
return@post
105+
}
106+
97107
}
98108
}
99109

100110
@ReactMethod
101111
fun runWithEnqueueTokenAsync(customerId: String, eventAlias: String, enqueueToken: String, layoutName: String?, language: String?, promise: Promise) {
102112
handler.post {
103-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
104-
queueEngine.runWithEnqueueToken(context.currentActivity, enqueueToken)
113+
if (context.currentActivity == null) {
114+
promise.reject("error", "Calling QueueItRun with a null activity/context")
115+
return@post
116+
}
117+
try {
118+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
119+
queueEngine.runWithEnqueueToken(context.currentActivity, enqueueToken)
120+
} catch (e: Exception) {
121+
promise.reject("error", e.message)
122+
return@post
123+
}
105124
}
106125
}
107126

108127
@ReactMethod
109128
fun runWithEnqueueKeyAsync(customerId: String, eventAlias: String, enqueueKey: String, layoutName: String?, language: String?, promise: Promise) {
110129
handler.post {
111-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
112-
queueEngine.runWithEnqueueKey(context.currentActivity, enqueueKey)
130+
if (context.currentActivity == null) {
131+
promise.reject("error", "Calling QueueItRun with a null activity/context")
132+
return@post
133+
}
134+
try {
135+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
136+
queueEngine.runWithEnqueueKey(context.currentActivity, enqueueKey)
137+
} catch (e: Exception) {
138+
promise.reject("error", e.message)
139+
return@post
140+
}
113141
}
114142
}
115143

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-queue-it",
3-
"version": "1.1.10",
3+
"version": "1.1.11",
44
"description": "React Native Module for integrating Queue-it's virtual waiting room into React Native apps.",
55
"main": "lib/commonjs/index",
66
"module": "lib/module/index",

src/index.tsx

Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,23 @@ class QueueItEngine {
5959
layoutName?: string,
6060
language?: string
6161
): Promise<EnqueueResult> {
62-
const result = await nativeQueueIt.runAsync(
63-
customerId,
64-
eventOrAliasId,
65-
layoutName,
66-
language
67-
);
68-
69-
return {
70-
QueueITToken: result.queueittoken,
71-
State: result.state,
72-
};
62+
try {
63+
const result = await nativeQueueIt.runAsync(
64+
customerId,
65+
eventOrAliasId,
66+
layoutName,
67+
language
68+
);
69+
70+
return {
71+
QueueITToken: result.queueittoken,
72+
State: result.state,
73+
};
74+
} catch (error) {
75+
this.offAll('openingQueueView');
76+
this.offAll('webViewClosed');
77+
throw error;
78+
}
7379
}
7480

7581
async runWithEnqueueToken(
@@ -79,18 +85,24 @@ class QueueItEngine {
7985
layoutName?: string,
8086
language?: string
8187
): Promise<EnqueueResult> {
82-
const result = await nativeQueueIt.runWithEnqueueTokenAsync(
83-
customerId,
84-
eventOrAliasId,
85-
enqueueToken,
86-
layoutName,
87-
language
88-
);
89-
90-
return {
91-
QueueITToken: result.queueittoken,
92-
State: result.state,
93-
};
88+
try {
89+
const result = await nativeQueueIt.runWithEnqueueTokenAsync(
90+
customerId,
91+
eventOrAliasId,
92+
enqueueToken,
93+
layoutName,
94+
language
95+
);
96+
97+
return {
98+
QueueITToken: result.queueittoken,
99+
State: result.state,
100+
};
101+
} catch (error) {
102+
this.offAll('openingQueueView');
103+
this.offAll('webViewClosed');
104+
throw error;
105+
}
94106
}
95107

96108
async runWithEnqueueKey(
@@ -100,18 +112,24 @@ class QueueItEngine {
100112
layoutName?: string,
101113
language?: string
102114
): Promise<EnqueueResult> {
103-
const result = await nativeQueueIt.runWithEnqueueKeyAsync(
104-
customerId,
105-
eventOrAliasId,
106-
enqueuekey,
107-
layoutName,
108-
language
109-
);
110-
111-
return {
112-
QueueITToken: result.queueittoken,
113-
State: result.state,
114-
};
115+
try {
116+
const result = await nativeQueueIt.runWithEnqueueKeyAsync(
117+
customerId,
118+
eventOrAliasId,
119+
enqueuekey,
120+
layoutName,
121+
language
122+
);
123+
124+
return {
125+
QueueITToken: result.queueittoken,
126+
State: result.state,
127+
};
128+
} catch (error) {
129+
this.offAll('openingQueueView');
130+
this.offAll('webViewClosed');
131+
throw error;
132+
}
115133
}
116134

117135
on(
@@ -127,6 +145,10 @@ class QueueItEngine {
127145
listener.apply(args);
128146
});
129147
}
148+
149+
offAll(eventType: string): void {
150+
queueItEventEmitter.removeAllListeners(eventType);
151+
}
130152
}
131153

132154
export const QueueIt = new QueueItEngine();

0 commit comments

Comments
 (0)