Skip to content

Commit

Permalink
feat: dismiss in-app message (#138)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrehan27 authored Jun 1, 2023
1 parent e47cc95 commit 55d4c62
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ customerio.reactnative.kotlinVersion=1.7.21
customerio.reactnative.compileSdkVersion=30
customerio.reactnative.targetSdkVersion=30
customerio.reactnative.minSdkVersion=21
customerio.reactnative.cioSDKVersionAndroid=[3.4.1,4.0)
customerio.reactnative.cioSDKVersionAndroid=[3.5.0,4.0)
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactContextBaseJavaModule
import com.facebook.react.bridge.ReactMethod
import com.facebook.react.modules.core.DeviceEventManagerModule
import io.customer.messaginginapp.ModuleMessagingInApp
import io.customer.messaginginapp.di.inAppMessaging
import io.customer.messaginginapp.type.InAppEventListener
import io.customer.messaginginapp.type.InAppMessage
import io.customer.sdk.CustomerIO

/**
* ReactNative module to hold in-app messages features in a single place to bridge with native code.
Expand All @@ -16,6 +19,9 @@ class RNCIOInAppMessaging(
) : ReactContextBaseJavaModule(reactContext), InAppEventListener {
private var listenerCount = 0

private val inAppMessagingModule: ModuleMessagingInApp
get() = CustomerIO.instance().inAppMessaging()

@ReactMethod
fun addListener(eventName: String) {
listenerCount++
Expand All @@ -26,6 +32,14 @@ class RNCIOInAppMessaging(
listenerCount -= count
}

/**
* Dismisses any currently displayed in-app message
*/
@ReactMethod
fun dismissMessage() {
inAppMessagingModule.dismissMessage()
}

/**
* Sends event to JS Callback. All events are sent under one name so it easier for customers to
* listen on multiple linked events. The [eventType], [message] values and [extras] are merged
Expand Down
2 changes: 2 additions & 0 deletions ios/CustomerioInAppMessaging.m
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ @interface RCT_EXTERN_MODULE(CustomerioInAppMessaging, RCTEventEmitter)

RCT_EXTERN_METHOD(supportedEvents)

RCT_EXTERN_METHOD(dismissMessage)

@end
9 changes: 9 additions & 0 deletions ios/CustomerioInAppMessaging.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Foundation
import React
import CioMessagingInApp

@objc(CustomerioInAppMessaging)
class CustomerioInAppMessaging: RCTEventEmitter {
Expand All @@ -22,4 +23,12 @@ class CustomerioInAppMessaging: RCTEventEmitter {
open override func supportedEvents() -> [String]! {
return [ "InAppEventListener" ]
}

/**
* Dismisses any currently displayed in-app message
*/
@objc(dismissMessage)
func dismissMessage() {
MessagingInApp.shared.dismissMessage()
}
}
7 changes: 7 additions & 0 deletions src/CustomerIOInAppMessaging.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ class CustomerIOInAppMessaging {
}
);
}

/**
* Dismisses any currently displayed in-app message
*/
dismissMessage() {
InAppMessagingNative.dismissMessage();
}
}

/**
Expand Down

0 comments on commit 55d4c62

Please sign in to comment.