Skip to content

Commit 6a0c456

Browse files
Convert inAppConsume calls
1 parent 12e242d commit 6a0c456

File tree

7 files changed

+60
-0
lines changed

7 files changed

+60
-0
lines changed

InAppClasses.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ enum IterableInAppCloseSource {
4141
unknown = 100,
4242
}
4343

44+
enum IterableInAppDeleteSource {
45+
inboxSwipe = 0,
46+
deleteButton = 1,
47+
unknown = 100,
48+
}
49+
4450
class IterableEdgeInsets {
4551
top: number
4652
left: number
@@ -182,4 +188,5 @@ export {
182188
IterableInAppMessage,
183189
IterableInAppLocation,
184190
IterableInAppCloseSource,
191+
IterableInAppDeleteSource,
185192
}

Iterable.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
IterableInAppShowResponse,
77
IterableInAppLocation,
88
IterableInAppCloseSource,
9+
IterableInAppDeleteSource,
910
} from './InAppClasses'
1011

1112
const RNIterableAPI = NativeModules.RNIterableAPI
@@ -284,6 +285,17 @@ class Iterable {
284285
RNIterableAPI.trackInAppClose(message.messageId, location, source, clickedUrl)
285286
}
286287

288+
/**
289+
*
290+
* @param {IterableInAppMessage} message
291+
* @param {IterableInAppLocation} location
292+
* @param {IterableInAppDeleteSource} source
293+
*/
294+
static inAppConsume(message: IterableInAppMessage, location: IterableInAppLocation, source: IterableInAppDeleteSource) {
295+
console.log("inAppConsume")
296+
RNIterableAPI.inAppConsume(message.messageId, location, source)
297+
}
298+
287299
static getInAppMessages(): Promise<Array<IterableInAppMessage>> {
288300
console.log("getInAppMessages");
289301
return RNIterableAPI.getInAppMessages().then((messages: Array<any>) => messages.map (message => {return IterableInAppMessage.fromDict(message)}))

index.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export class Iterable {
1515
static trackPurchase(total: number, items: Array<IterableCommerceItem>, dataFields: any | null): void
1616
static trackInAppOpen(message: IterableInAppMessage, location: IterableInAppLocation): void
1717
static trackInAppClick(message: IterableInAppMessage, location: IterableInAppLocation, clickedUrl: String): void
18+
static inAppConsume(message: IterableInAppMessage, location: IterableInAppLocation, source: IterableInAppDeleteSource): void
1819
}
1920

2021
export enum PushServicePlatform {
@@ -171,4 +172,10 @@ export enum IterableInAppCloseSource {
171172
unknown = 100,
172173
}
173174

175+
export enum IterableInAppDeleteSource {
176+
inboxSwipe = 0,
177+
deleteButton = 1,
178+
unknown = 100,
179+
}
180+
174181

index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
IterableInAppMessage,
2828
IterableInAppLocation,
2929
IterableInAppCloseSource,
30+
IterableInAppDeleteSource,
3031
} from './InAppClasses';
3132

3233
export {
@@ -48,4 +49,5 @@ export {
4849
IterableInAppMessage,
4950
IterableInAppLocation,
5051
IterableInAppCloseSource,
52+
IterableInAppDeleteSource,
5153
};

ios/RNIterableAPI/RNIterableAPI.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ @interface RCT_EXTERN_REMAP_MODULE(RNIterableAPI, ReactIterableAPI, NSObject)
6161
source: (nonnull NSNumber *) source
6262
clickedUrl: (nonnull NSString *) clickedUrl)
6363

64+
RCT_EXTERN_METHOD(inAppConsume: (nonnull NSString *) messageId
65+
location: (nonnull NSNumber *) location
66+
source: (nonnull NSNumber *) source)
67+
6468
RCT_EXTERN_METHOD(getInAppMessages: (RCTPromiseResolveBlock) resolve
6569
rejecter: (RCTPromiseRejectBlock) reject)
6670

ios/RNIterableAPI/ReactIterableAPI.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,25 @@ class ReactIterableAPI: RCTEventEmitter {
214214
}
215215
}
216216

217+
@objc(inAppConsume:location:source:)
218+
func inAppConsume(messageId: String,
219+
location locationNumber: NSNumber,
220+
source sourceNumber: NSNumber) {
221+
ITBInfo()
222+
guard let message = IterableAPI.inAppManager.getMessage(withId: messageId) else {
223+
ITBError("Could not find message with id: \(messageId)")
224+
return
225+
}
226+
if let inAppDeleteSource = InAppDeleteSource.from(number: sourceNumber) {
227+
IterableAPI.inAppConsume(message: message,
228+
location: InAppLocation.from(number: locationNumber),
229+
source: inAppDeleteSource)
230+
} else {
231+
IterableAPI.inAppConsume(message: message,
232+
location: InAppLocation.from(number: locationNumber))
233+
}
234+
}
235+
217236
@objc(getInAppMessages:rejecter:)
218237
func getInAppMessages(resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
219238
ITBInfo()

ios/RNIterableAPI/Serialization.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,15 @@ extension InAppCloseSource {
161161
}
162162
}
163163

164+
extension InAppDeleteSource {
165+
static func from(number: NSNumber) -> InAppDeleteSource? {
166+
guard let value = number as? Int else {
167+
return nil
168+
}
169+
return InAppDeleteSource(rawValue: value)
170+
}
171+
}
172+
164173
extension InAppShowResponse {
165174
static func from(number: NSNumber) -> InAppShowResponse {
166175
if let value = number as? Int {

0 commit comments

Comments
 (0)